ViewPager
ViewPager实现的是布局之间滑动的效果,因为Viewpager是继承于v4.support jar包的,因此需要导入包,Android Studio的导包的具体步骤如下:File->Project Structure->Modules->app->Dependencies
首先要在XML中写入Viewpager,
<android.support.v4.view.ViewPager
android:id="@+id/pagerview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
></android.support.v4.view.ViewPager>
activity_pagerview.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/pagerview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
></android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/viewGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="40dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
</LinearLayout>
</RelativeLayout>
</FrameLayout>
然后写三个界面
activity_pager_image.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/image_wa"/>
</LinearLayout>
activtiy_pager_text.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grawgreen"
android:text="我是第二个界面"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/iamgeziwang"/>
</LinearLayout>
activity_pager_button.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<Button
android:id="@+id/button_pagerview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是第三个界面的按钮"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/jie2"/>
</LinearLayout>
因为viewpager也需要adapter来设置当前的加载页数和预加载的布局
PagerAdapter.java
package StudentAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2015/9/5.
*/
public class ViewpagerAdapter extends PagerAdapter{
private List<View> views;
private List<String> mtitles;
public ViewpagerAdapter(List<View> views) {
this.views = views;
}
@Override
public int getCount() {
return views.size();//得到页卡的页数
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(views.get(position));//加载页卡
return views.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// super.destroyItem(container, position, object);
container.removeView(views.get(position));//删除页卡
}
}
ViewPagerActivity.java
package com.example.administrator.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
import StudentAdapter.ViewpagerAdapter;
/**
* Created by Administrator on 2015/9/6.
*/
public class ViewPagerActivity extends Activity{
private List<View> views;
private ViewPager mViewPager;
private LayoutInflater mInflater;
private ViewGroup mViewGroup;
private ViewpagerAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewpager);
mViewPager= (ViewPager) findViewById(R.id.viewpager);
mInflater=getLayoutInflater();
views=new ArrayList<View>();
views.add(mInflater.inflate(R.layout.activity_pager_image,null));
views.add(mInflater.inflate(R.layout.activity_pager_button,null));
views.add(mInflater.inflate(R.layout.activity_pager_text,null));
mAdapter=new ViewpagerAdapter(views);
mViewPager.setAdapter(mAdapter);
}
}
带导航小圆点的Viewpager
ViewPager还可以实现加上带有导航的小圆点,需要一个专门的ViewGroup来放这些小圆点,此外还需要给这些小圆点加上点击事件,具体的实现步骤如下:
activity_viewpager.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/Linearlayout_viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_margin="30dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
</LinearLayout>
</RelativeLayout>
三个布局同简单地Viewpager一样,依然是activity_pager_button.xml、activity_pager_text.xml、activity_pager_iamge.xml
Adapter一样
设置小圆点的状态page_indicator_focused.xml和page_indicator.xml
page_indicator_focused.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="5dp"
android:height="5dp"></size>
<corners android:radius="5dp"></corners>
<stroke android:color="@color/grawgreen"
android:width="1dp"></stroke>
<solid android:color="@color/grawgreen"></solid>
</shape>
page_indicator.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp"></corners>
<size android:width="5dp"
android:height="5dp"></size>
<solid android:color="@color/write"></solid>
</shape>
在Java代码中有些不一样,ViewpagerActivity.java
package com.example.administrator.myapplication;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import java.util.ArrayList;
import java.util.List;
import StudentAdapter.ViewpagerAdapter;
/**
* Created by Administrator on 2015/9/5.
*/
public class ViewPagerTitleActivity extends Activity{
private List<View> views;
private LayoutInflater mInflater;
private ViewPager viewpager;
private ViewpagerAdapter mPagerViewAdapter;
private List<ImageView> mImages;
private ViewGroup mLinearLayout;
private PagerTabStrip mPagerTabStrip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewpager);
viewpager = (ViewPager) findViewById(R.id.viewpager);
mLinearLayout= (ViewGroup) findViewById(R.id.Linearlayout_viewpager);
// 将要分页显示的View装入数组中
views = new ArrayList<View>();
mInflater = getLayoutInflater();
final View view1 = mInflater.inflate(R.layout.activity_pager_image, null);
View view2 = mInflater.inflate(R.layout.activity_pager_text, null);
View view3 = mInflater.inflate(R.layout.activity_pager_button, null);
View view4 = mInflater.inflate(R.layout.activity_pager_image, null);
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
mImages=new ArrayList<ImageView>();
//将小圆点加入ViewGroup中
for (int i=0;i<views.size();i++){
ImageView img=new ImageView(this);//联系上下文
//设置layoutParams的长和宽
LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//设置小圆点之间的间距
layoutParams.setMargins(20,0,0,0);
//将布局加载
img.setLayoutParams(layoutParams);
//设置校小圆点的样式
img.setImageResource(R.drawable.page_indicator);
//将小圆点加入list中
mImages.add(img);
//将带有小圆点的list加入ViewGroup中
mLinearLayout.addView(img);
};
//设置初始状态下的第一张的小圆点的状态
mImages.get(0).setImageResource(R.drawable.page_indicator_focused);
mPagerViewAdapter = new ViewpagerAdapter(views);
//设置Adapter
viewpager.setAdapter(mPagerViewAdapter);
//设置小圆点的点击事件
viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//设置所有的小圆点的初始状态
for (ImageView img:mImages){
img.setImageResource(R.drawable.page_indicator);
}
//设置选中的小圆点的状态
mImages.get(position%views.size()).setImageResource(R.drawable.page_indicator_focused);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
//设置初始第一张的位置
viewpager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2/2%views.size());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
} }
无限循环的Viewpager
Viewpager可以实现无限循环,有两种方法,这里说其中的简单的一种,其实就是将页卡的数量设为无限大,在将初始的页卡设为其中间的一张就实现了名义上的无限循环。依旧在前面的基础上进行改动。
acativtiy_pagerview.xml和三个布局基本不变,activity_pager_button.xml、activity_pager_text.xml、activity_pager_iamge.xml
Adapter需要进行一些改动,ViewPagerAdapter.java
package StudentAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2015/9/5.
*/
public class ViewpagerAdapter extends PagerAdapter{
private List<View> views;
private List<String> mtitles;
public ViewpagerAdapter(List<View> views) {
this.views = views;
}
@Override
public int getCount() {
return Integer.MAX_VALUE;//得到页卡的数量
// return views.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
if (views.get(position%views.size())!=null){
container.removeView(views.get(position%views.size()));//删除页卡
}
container.addView(views.get(position%views.size()));//添加页卡
return views.get(position%views.size());
// container.addView(views.get(position));
// return views.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// super.destroyItem(container, position, object);
// container.removeView(views.get(position));//删除页卡
}
}
ViewPagerActivity.java
public class ViewPagerTitleActivity extends Activity{
private List<View> views;
private LayoutInflater mInflater;
private ViewPager viewpager;
private ViewpagerAdapter mPagerViewAdapter;
private List<ImageView> mImages;
private ViewGroup mLinearLayout;
private PagerTabStrip mPagerTabStrip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewpager);
viewpager = (ViewPager) findViewById(R.id.viewpager);
mLinearLayout= (ViewGroup) findViewById(R.id.Linearlayout_viewpager);
// 将要分页显示的View装入数组中
views = new ArrayList<View>();
mInflater = getLayoutInflater();
final View view1 = mInflater.inflate(R.layout.activity_pager_image, null);
View view2 = mInflater.inflate(R.layout.activity_pager_text, null);
View view3 = mInflater.inflate(R.layout.activity_pager_button, null);
View view4 = mInflater.inflate(R.layout.activity_pager_image, null);
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
mImages=new ArrayList<ImageView>();
//将小圆点加入ViewGroup中
for (int i=0;i<views.size();i++){
ImageView img=new ImageView(this);//联系上下文
//设置layoutParams的长和宽
LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//设置小圆点之间的间距
layoutParams.setMargins(20,0,0,0);
//将布局加载
img.setLayoutParams(layoutParams);
//设置校小圆点的样式
img.setImageResource(R.drawable.page_indicator);
//将小圆点加入list中
mImages.add(img);
//将带有小圆点的list加入ViewGroup中
mLinearLayout.addView(img);
};
//设置初始状态下的第一张的小圆点的状态
mImages.get(0).setImageResource(R.drawable.page_indicator_focused);
mPagerViewAdapter = new ViewpagerAdapter(views);
//设置Adapter
viewpager.setAdapter(mPagerViewAdapter);
//设置小圆点的点击事件
viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//设置所有的小圆点的初始状态
for (ImageView img:mImages){
img.setImageResource(R.drawable.page_indicator);
}
//设置选中的小圆点的状态
mImages.get(position%views.size()).setImageResource(R.drawable.page_indicator_focused);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
//设置初始第一张的位置
viewpager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2/2%views.size());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}
带有标题栏的Viewpager
Viewpager带有标题栏其实就是在xml文件内加上
<android.support.v4.view.PagerTabStrip
android:id="@+id/PagerTabStrip"
android:layout_height="wrap_content"
android:layout_width="match_parent"
/>
设置标题懒得背景色
mPagerTabStrip.setBackgroundColor(Color.GRAY);
设置滑动杠的颜色
mPagerTabStrip.setTabIndicatorColor(Color.WHITE);
设置标题文本的颜色
mPagerTabStrip.setTextColor(Color.BLUE);
```
设置是否带有下划线
```
mPagerTabStrip.setDrawFullUnderline(true);
简单地综合实例
activity_viewpager.xml
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.v4.view.PagerTabStrip
android:id="@+id/PagerTabStrip"
android:layout_height="wrap_content"
android:layout_width="match_parent"
/>
</android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/Linearlayout_viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_margin="30dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
</LinearLayout>
ViewPagerTitleActivity.java
package com.example.administrator.myapplication;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import java.util.ArrayList;
import java.util.List;
import StudentAdapter.ViewpagerAdapter;
/**
* Created by Administrator on 2015/9/5.
*/
public class ViewPagerTitleActivity extends Activity{
private List<View> views;
private LayoutInflater mInflater;
private ViewPager viewpager;
private ViewpagerAdapter mPagerViewAdapter;
private List<ImageView> mImages;
private ViewGroup mLinearLayout;
private PagerTabStrip mPagerTabStrip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewpager);
viewpager = (ViewPager) findViewById(R.id.viewpager);
mLinearLayout= (ViewGroup) findViewById(R.id.Linearlayout_viewpager);
mPagerTabStrip= (PagerTabStrip)findViewById(R.id.PagerTabStrip);
mPagerTabStrip.setBackgroundColor(Color.GRAY);//设置标题栏得背景色
mPagerTabStrip.setTabIndicatorColor(Color.WHITE);//设置滑动杠的颜色
mPagerTabStrip.setTextColor(Color.BLUE);//设置标题文本的颜色
mPagerTabStrip.setDrawFullUnderline(true);//设置是否带有下划线
//将要分页显示的View装入数组中
views = new ArrayList<View>();
mInflater = getLayoutInflater();
final View view1 = mInflater.inflate(R.layout.activity_pager_image, null);
View view2 = mInflater.inflate(R.layout.activity_pager_text, null);
View view3 = mInflater.inflate(R.layout.activity_pager_button, null);
View view4 = mInflater.inflate(R.layout.activity_pager_image, null);
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
mImages=new ArrayList<ImageView>();
//将小圆点加入ViewGroup中
for (int i=0;i<views.size();i++){
ImageView img=new ImageView(this);//联系上下文
//设置layoutParams的长和宽
LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//设置小圆点之间的间距
layoutParams.setMargins(20,0,0,0);
//将布局加载
img.setLayoutParams(layoutParams);
//设置校小圆点的样式
img.setImageResource(R.drawable.page_indicator);
//将小圆点加入list中
mImages.add(img);
//将带有小圆点的list加入ViewGroup中
mLinearLayout.addView(img);
};
//设置初始状态下的第一张的小圆点的状态
mImages.get(0).setImageResource(R.drawable.page_indicator_focused);
mPagerViewAdapter = new ViewpagerAdapter(views);
//设置Adapter
viewpager.setAdapter(mPagerViewAdapter);
//设置小圆点的点击事件
viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//设置所有的小圆点的初始状态
for (ImageView img:mImages){
img.setImageResource(R.drawable.page_indicator);
}
//设置选中的小圆点的状态
mImages.get(position%views.size()).setImageResource(R.drawable.page_indicator_focused);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
//设置初始第一张的位置
viewpager.setCurrentItem(Integer.MAX_VALUE/2-Integer.MAX_VALUE/2/2%views.size());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}
Viewpageradapter.java
package StudentAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2015/9/5.
*/
public class ViewpagerAdapter extends PagerAdapter{
private List<View> views;
private List<String> mtitles;
public ViewpagerAdapter(List<View> views) {
this.views = views;
}
//重写getPageTitle()方法加入标题
@Override
public CharSequence getPageTitle(int position) {
mtitles=new ArrayList<String>();
mtitles.add("标题一");
mtitles.add("标题二");
mtitles.add("标题三");
mtitles.add("标题四");
return mtitles.get(position%views.size());
}
@Override
public int getCount() {
return Integer.MAX_VALUE;//得到页卡的数量
// return views.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
if (views.get(position%views.size())!=null){
container.removeView(views.get(position%views.size()));//删除页卡
}
container.addView(views.get(position%views.size()));//添加页卡
return views.get(position%views.size());
// container.addView(views.get(position));
// return views.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// super.destroyItem(container, position, object);
// container.removeView(views.get(position));//删除页卡
}
}
Fragment碎片
为了更好地兼容android设备屏幕的不同,利用一种可以嵌入在UI中片段,能够更好的利用大屏幕的空间
利用标签在布局中添加碎片,其中android:name用来指定要添加碎片的类名,包名也要加上。如下:
<fragment
class="com.example.administrator.myapplication.MySecondFragment"
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"></fragment>
添加碎片的类要继承与Fragment
package com.example.administrator.myapplication;
import android.app.FragmentTransaction;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.view.View;
import android.widget.Button;
/**
* Created by Administrator on 2015/9/6.
*/
public class Fragment_Activity extends FragmentActivity implements View.OnClickListener {
private Button btn_fragment_button;
private Button btn_fragment_text;
private Button btn_fragment_image;
private FragmentManager manager;
private android.support.v4.app.FragmentTransaction transaction;
private MyFragment mMyFragment;
private MySecondFragment mMySecondFragment;
private MyThirdFragment mMyThirdFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
btn_fragment_button = (Button) findViewById(R.id.button_fragment_button);
btn_fragment_text = (Button) findViewById(R.id.button_fragment_textview);
btn_fragment_image = (Button) findViewById(R.id.button_fragment_imageView);
btn_fragment_button.setOnClickListener(this);
btn_fragment_text.setOnClickListener(this);
btn_fragment_image.setOnClickListener(this);
manager=getSupportFragmentManager();
transaction=manager.beginTransaction();
mMyFragment=new MyFragment();
mMySecondFragment=new MySecondFragment();
mMyThirdFragment=new MyThirdFragment();
transaction.add(R.id.fragment,mMyFragment);
transaction.add(R.id.fragment,mMySecondFragment);
transaction.add(R.id.fragment,mMyThirdFragment);
transaction.hide(mMyFragment);
transaction.hide(mMySecondFragment);
transaction.hide(mMyThirdFragment);
transaction.commit();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_fragment_button:
transaction=manager.beginTransaction();
// transaction.replace(R.id.fragment,new MyFragment());
transaction.hide(mMySecondFragment);
transaction.hide(mMyThirdFragment);
transaction.show(mMyFragment);
transaction.commit();
break;
case R.id.button_fragment_textview:
transaction=manager.beginTransaction();
// transaction.replace(R.id.fragment,new MySecondFragment());
String
text=mMyThirdFragment.getText();
mMySecondFragment.setText(text);
transaction.hide(mMyFragment);
transaction.hide(mMyThirdFragment);
transaction.show(mMySecondFragment);
transaction.commit();
break;
case R.id.button_fragment_imageView:
transaction=manager.beginTransaction();
// transaction.replace(R.id.fragment,new MyThirdFragment());
transaction.hide(mMyFragment);
transaction.hide(mMySecondFragment);
transaction.show(mMyThirdFragment);
transaction.commit();
break;
default:
break;
}
}
}
activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--<fragment-->
<!--class="com.example.administrator.myapplication.MySecondFragment"-->
<!--android:id="@+id/fragment"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"></fragment>-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
>
<Button
android:id="@+id/button_fragment_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="fragment按钮"/>
<Button
android:id="@+id/button_fragment_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按钮文字"/>
<Button
android:id="@+id/button_fragment_imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按钮图片"/>
</LinearLayout>
</RelativeLayout>
</FrameLayout>
</LinearLayout>