Viewpaer+fragment
1、碎片的动态切换:
1-1:页面填写
<FrameLayout
android:id="@+id/fl_layout"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/fragment_two"
android:name="com.firefly.fragment.FragmentTwo"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
<fragment
android:id="@+id/fragment_one"
android:name="com.firefly.fragment.FragmentOne"
android:layout_width="match_parent"
android:layout_height="50dp"/>
1-2:在Activity中新建碎片
FragmentTwo f2 = new FragmentTwo();
……
1-3:新建FragmentManager管理碎片
1-4:点击后切换
fm.beginTransaction().replace(R.id.fl_layout, f3).commit();
2、加入ViewPager,实现滑动切换与点击切换
2-1:在xml文件中写入<android.support.v4.view.ViewPager/>
2-2:在Activity文件中写入它的ViewPager及List<Fragment>
ViewPager pager;
List<Fragment> list = new ArrayList<Fragment>();
list.add(new FragmentTwo());
list.add(new FragmentThere());
list.add(new FragmentFour());
2-3:写适配器
注:此处的适配器为FragmentPagerAdapter,要么统一导入v4包下面的,谨慎使用v13包下面的
FragmentPagerAdapter adapter = new FragmentPagerAdapter(fm) {
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
}
};
2-4:写入viewpager的监听事件,即点击切换及换背景色
pager.setOnPageChangeListener(new OnPageChangeListener(){代码}
写入它的3个方法
选择时:
public void onPageSelected(int index)
页面滑动后:
public void onPageScrolled(int arg0, float arg1, int arg2)
页面滑动时:
public void onPageScrollStateChanged(int arg0)
2-5:写入TextView或Button的点击方法
public void Test(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.tv1:
pager.setCurrentItem(0);
break;
case R.id.tv2:
pager.setCurrentItem(1);
break;
case R.id.tv3:
pager.setCurrentItem(2);
break;
default:
break;
}
}
最新文章
- HDU 4081Qin Shi Huang&#39;s National Road System(次小生成树)
- Android异常:唤醒锁未授权。(Caused by: java.lang.SecurityException: Neither user 10044 nor current process has android.permission.WAKE_LOCK.)
- Qt控制台中文乱码问题
- sqlserver工作日常使用sql--持续完善中
- Unable to execute dex: Multiple dex files define Lcom/kenai/jbosh/AbstractAttr
- HDU 2125 Local area network
- MySQL 5.7原生JSON格式支持
- 用frame实现最基本的上中下三层布局,中间又分左右两部分.
- C:应用于字符串处理函数
- Javascript跨域请求的几种解决方法
- Java开发小技巧(三):Maven多工程依赖项目
- OSI模型和TCP/IP协议族(三)
- Response ServletContext 中文乱码 Request 编码 请求行 共享数据 转发重定向
- 源码编译安装php7
- Timus 1132 Square Root(二次剩余 解法2)
- [CC-ADJLEAF2]Adjacent Leaves
- 10-SQL Server 2008 R2安装步骤
- Tomcat学习总结(4)——基于Tomcat7、Java、WebSocket的服务器推送聊天室
- 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
- RegisterStartupScript 后退重复提示解决方法
热门文章
- iOS tableViewCell侧滑改变收藏状态
- [Sublime Text] How to Install Sublime Text on Ubuntu
- CGRect 结构体的另外一种写法
- 我写了本破书-swift语言实战晋级
- SLF4J环境变量配置
- 转:Java实现几种常见排序方法
- [原创]java WEB学习笔记79:Hibernate学习之路--- 四种对象的状态,session核心方法:save()方法,persist()方法,get() 和 load() 方法,update()方法,saveOrUpdate() 方法,merge() 方法,delete() 方法,evict(),hibernate 调用存储过程,hibernate 与 触发器协同工作
- SQL查询 练习题
- BroadCast Receive 生命周期
- 直关的sql 联级更新语句