4.8.3 在 一个 Fragment 里面实现ViewPager 和TabLayout 进行联动
来源:互联网 发布:数据库表怎么设计 编辑:程序博客网 时间:2024/06/05 22:58
4.8.3 ViewPager 和TabLayout 进行联动
首先在布局里面是一个LinearLayout,然后是TabLayout ,记着这个TabLayout 必须要是全部的路径,然后是ViewPager的
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.TabLayout android:id="@+id/manhua_viewpager_tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@mipmap/titlebar_bg" app:tabTextColor="#66FFFFFF" app:tabSelectedTextColor="#66FF0000" > </android.support.design.widget.TabLayout><android.support.v4.view.ViewPager android:id="@+id/manhua_viewpager" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v4.view.ViewPager></LinearLayout>
然后创建一个ViewPager的FragmentPagerAdapter,在这里面的Fragment 一定要是v4包的,而且要有一个fragment 的列表;
public class ComicViewPagerAdapter extends FragmentPagerAdapter { ArrayList<Fragment> fragments; public ComicViewPagerAdapter(FragmentManager fm,ArrayList<Fragment> fragments) { super(fm); this.fragments=fragments; } @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } @Override public CharSequence getPageTitle(int position) {// return super.getPageTitle(position); String ret = null; switch (position){ case 0: ret="精品"; break; case 1: ret="更新"; break; case 2: ret="排行"; break; case 3: ret="分类"; break; } return ret; }}
然后在 Fragment 里面实现ViewPager 和TabLayout 进行联动;注意这里面如果不用ret 去findViewById而是用getActivity的话就会报空指针。
public class ComicFragment extends Fragment { private ViewPager mComicViewPager; Context context; public ComicFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View ret =inflater.inflate(R.layout.fragment_comic, container, false); // Inflate the layout for this fragment TabLayout tabLayout = (TabLayout)ret.findViewById(R.id.comic_tablayout); mComicViewPager = (ViewPager)ret.findViewById(R.id.comic_viewPager); ArrayList<Fragment> fragments = new ArrayList<Fragment>(); fragments.add(new CategoryFragment()); fragments.add(new CategoryFragment()); fragments.add(new CategoryFragment()); fragments.add(new CategoryFragment()); ComicViewPagerAdapter adapter = new ComicViewPagerAdapter(getChildFragmentManager(),fragments); mComicViewPager.setAdapter(adapter); tabLayout.setupWithViewPager(mComicViewPager); // 防止ViewPager销毁不在屏幕内部的应用 mComicViewPager.setOffscreenPageLimit(5); return ret; }}
0 0
- 4.8.3 在 一个 Fragment 里面实现ViewPager 和TabLayout 进行联动
- TabLayout,ViewPager,Fragment实现联动
- TabLayout,ViewPager,Fragment,实现联动
- Tablayout+Viewpager+fragment实现联动效果
- TabLayout 和ViewPager和Fragment的多页面滑动(主要实现一个水平的布局用来展示Tabs加上ViewPager实现联动效果)
- Tablayout + Viewpager + Fragment 联动显示
- TabLayout和ViewPager的联动效果实现
- TabLayout和ViewPager联动
- TabLayout和Viewpager联动
- 实现TabLayout+ViewPager+Fragment头目的联动模式
- Android之TabLayout+ViewPager+Fragment实现标题栏与页面联动
- TabLayout 实现ViewPager+fragment
- ViewPager 和 TabLayout实现Fragment分页
- ViewPager 、TabLayout和Fragment实现标签滑动
- tablayout + viewpager + fragment 实现标签,并且部分fragment里面嵌套viewpager+fragment
- TabLayout,PullToRefresh,ImageLoader,ViewPager,Fragment联动效果
- TabLayout标题和Fragment联动
- 实现tablayout与viewpager联动,viewpager内通过fragment加载listview
- 子类不能抛新的异常
- java匿名类没有函数名的花括号
- Java中关于OOM的场景及解决方法(顶)
- centos 6.5 搭建lnmp环境
- 互联网协议——基础篇
- 4.8.3 在 一个 Fragment 里面实现ViewPager 和TabLayout 进行联动
- 360奇虎的QConf在cygwin下面编译的心得
- The Swift Programming Language学习笔记(二十四)——泛型
- ionic serve启用浏览器调试显示页面无法加载问题及解决办法
- adt install offline mode
- 用PHP写和调用webservice最简单方法
- codeforces 585F - Digits of Number Pi (dp + acauto)
- SUSE安装、配置APR和Tomcat-Native
- iPhone设备的分辨率以及对应尺寸