ViewPager:Fragment的转换
来源:互联网 发布:mac 外接显示器 风扇 编辑:程序博客网 时间:2024/05/02 04:31
ViewPager是一个可以实现多个图片、Fragment手指滑动,自动轮播的类。
1.首先要找到ViewPager的类名在Android Private Libraries里找到View包里找到ViewPager.class,复制限定名
2.之后再布局写入ViewPager
<android.support.v4.view.ViewPager
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/vp"/>
3.准备好几个图片和Fragment
图片比较简单,直接加入一个int[]钟;
Fragment比较复杂把几个写好的Fragment加入ArrayList集合里,写好FragmentStatePagerAdapter适配器类:
public class fragment extends FragmentStatePagerAdapter {
ArrayList<Fragment>list;
public fragment(FragmentManager fm,ArrayList<Fragment>list) {
super(fm);
this.list=list;
}
@Override
public Fragment getItem(int arg0) {
// TODO 自动生成的方法存根
return list.get(arg0);
}
@Override
public int getCount() {
// TODO 自动生成的方法存根
return list.size();
}
}
4.调用适配器类 简单的Fragment切换就完成了
fragment fragment = new fragment(getSupportFragmentManager(), list);
vpPager.setAdapter(fragment);
***********************以下是完整代码**************************fragment的切换和底部按键文字图片的变化
public class MainActivity extends FragmentActivity {
int[] ii={R.id.b1,R.id.b2,R.id.b3};
RadioButton [] groupButtons=new RadioButton [ii.length];
ArrayList<Fragment>list=new ArrayList<Fragment>();
private fragment1 fragment1;
private fragment2 fragment2;
private fragment3 fragment3;
private ViewPager vpPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vpPager = (ViewPager) findViewById(R.id.vp);
initList();
initView();
//2.把fragment适配器类调用
fragment fragment = new fragment(getSupportFragmentManager(), list);
vpPager.setAdapter(fragment);
//4.切换界面的设置
vpPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO 自动生成的方法存根
for (int i = 0; i< groupButtons.length; i++) {
if (arg0==i) {
groupButtons[arg0].setTextColor(Color.RED);
groupButtons[arg0].setChecked(true);
}else {
groupButtons[i].setTextColor(Color.BLACK);
groupButtons[i].setChecked(false);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO 自动生成的方法存根
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO 自动生成的方法存根
}
});
}
//3.设置布局底部按键点击事件的方法
private void initView() {
// TODO 自动生成的方法存根
for (int i = 0; i < ii.length; i++) {
final RadioButton rr=(RadioButton ) findViewById(ii[i]);
rr.setTag(i);
rr.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO 自动生成的方法存根
vpPager.setCurrentItem((Integer) rr.getTag());
}
});
groupButtons[i]=rr;
}
//改变按键文字的颜色
groupButtons[0].setTextColor(Color.RED);
//是否是点击状态
groupButtons[0].setChecked(true);
}
//1.Fragment加入集合
private void initList() {
fragment1 = new fragment1();
fragment2 = new fragment2();
fragment3 = new fragment3();
list.add(fragment1);
list.add(fragment2);
list.add(fragment3);
}
}
//按键图片的是否点击状态的变化
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/icon01" android:state_checked="true"></item>
<item android:drawable="@drawable/icon02" android:state_checked="false"></item>
<item android:drawable="@drawable/icon01"></item>
</selector>
- ViewPager:Fragment的转换
- Android---------ViewPager+Fragment实现界面的转换(颜色变化)
- 简洁的Fragment+viewPager
- ViewPager+Fragment的使用
- ViewPager+Fragment的使用
- ViewPager+Fragment的布局
- fragment+viewpager的优化
- viewpager + fragment 的坑
- ViewPager+Fragment的使用
- ViewPager+Fragment的下划线
- viewpager的fragment嵌套viewpager的问题
- viewpager fragment中fragment的状态保存
- ViewPager + Fragment套用Fragment的问题
- 简单的Fragment切换,Fragment嵌套Viewpager
- ViewPager的Fragment的配置
- viewpager 中fragment 的生命周期
- ViewPager和fragment的使用
- ViewPager+Fragment的结合使用
- 用GTK编写GUI程序
- Linux动态库原理(二)重定位
- linux下Lua调用C函数
- Nat和防火墙的概念和纠葛,谁先作用?
- pthread_join与pthread_detach细节问题
- ViewPager:Fragment的转换
- 基于UAAG2.0 Reference的移动无障碍案例(三)
- maven项目中如何创建web.xml
- 拆解Cluene系列(7)——Cluene用到的虚继承
- AOJ 旅行家(状态压缩dp)详解
- Theano深度学习结构分析
- 跳舞_纪中2545_dp
- docker学习
- ios开发科大讯飞的语音识别