Fragment中TabLayout加FragmentViewPager
让tablayout中的Tab平铺:在tablayout布局中写:
- app:tabMaxWidth="0dp"
app:tabGravity="fill"
app:tabMode="fixed"
这是要放TabLayout的Fragment:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <android.support.design.widget.TabLayout
- android:id="@+id/tl"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:tabIndicatorColor="#FF00FF00"
- app:tabSelectedTextColor="#FF00FF00"
- app:tabTextColor="#FF000000"
- app:tabMode="scrollable"
- app:tabGravity="center"/>
- <android.support.v4.view.ViewPager
- android:id="@+id/viewpager"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- </LinearLayout>
- 这是Fragment:
- public class ZhuyeMyFragment extends Fragment{
- private String[] mTitle = new String[4];
- private String[] mData = new String[4];
- {
- for(int i=0;i<4;i++) {
- mTitle[i] = "title" + i;
- mData[i] = "data" + i;
- }
- }
- TabLayout mTabLayout ;
- ViewPager mViewPager ;
- FragmentPagerAdapter mAdapter;
- Zhuti zt;
- Zuixin zx;
- Zl zl;
- Rm rm;
- ArrayList<Fragment> flist;
- @Nullable
- @Override
- public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View view=inflater.inflate(R.layout.zhuye_layout,null);
- mTabLayout = (TabLayout)view.findViewById(R.id.tl);
- mViewPager = (ViewPager)view.findViewById(R.id.viewpager);
- FragmentManager man = getActivity().getSupportFragmentManager();
- initFragment();
- flist=new ArrayList<Fragment>();
- flist.add(zx);
- flist.add(zl);
- flist.add(rm);
- flist.add(zt);
- mTabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
- @Override
- public void onTabSelected(TabLayout.Tab tab) {
- mViewPager.setCurrentItem(tab.getPosition());
- }
- @Override
- public void onTabUnselected(TabLayout.Tab tab) {
- }
- @Override
- public void onTabReselected(TabLayout.Tab tab) {
- }
- });
- final TabLayout.TabLayoutOnPageChangeListener listener =
- new TabLayout.TabLayoutOnPageChangeListener(mTabLayout);
- mViewPager.addOnPageChangeListener(listener);
- mAdapter= new FragmentAdapter(man,flist);
- mViewPager.setAdapter(mAdapter);
- mTabLayout.setTabsFromPagerAdapter(mAdapter);
- return view;
- }
- private void initFragment() {
- zt=new Zhuti();
- zx=new Zuixin();
- zl=new Zl();
- rm=new Rm();
- }
- }
这是FragmentAdapter:
- public class FragmentAdapter extends FragmentPagerAdapter {
- private String [] title = {"最新日报","热门","专栏","主题日报"};
- private List<Fragment> fragmentList;
- public FragmentAdapter(FragmentManager fm, List<Fragment> fragmentList) {
- super(fm);
- this.fragmentList = fragmentList;
- }
- @Override
- public Fragment getItem(int position) {
- return fragmentList.get(position);
- }
- @Override
- public int getCount() {
- return fragmentList.size();
- }
- @Override
- public CharSequence getPageTitle(int position) {
- return title[position];
- }
- }
Fragment中TabLayout加FragmentViewPager的更多相关文章
- Data binding 在Activity,Fragment中引用以及加载其他布局
Data binding在Activity中使用: DataBindingUtil.setContentView(this, R.layout.activity_home); Data binding ...
- 关于TabLayout与ViewPager在Fragment中嵌套Fragment使用或配合使用的思考
注意: 因为继承的是Fragment,所以getSupportFragmentManager()与getFragmentManager()方法无法使用,这里需要用到getChildFragmentMa ...
- 在Fragment中加一个嵌套了ListView的ScrollView(一)
首先介绍一下这个程序的功能: 1.顶部有两个可以切换Fragment的Button 2.在其中一个Fragment中里有个ScrollView,ScrollView中有ViewFlipper,List ...
- ViewPager+Fragment取消预加载(延迟加载)(转)
原文:http://www.2cto.com/kf/201501/368954.html 在项目中,都或多或少地使用的Tab布局,所以大都会用到ViewPager+Fragment,但是Fragmen ...
- Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
Toolbar作为ActionBar使用介绍 本文介绍了在Android中将Toolbar作为ActionBar使用的方法. 并且介绍了在Fragment和嵌套Fragment中使用Toolbar作为 ...
- Andriod开发技巧——Fragment的懒加载
我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个 fragment都需要去加载数据,或从本地加载,或从网络加载,那么 ...
- Android ViewPager Fragment使用懒加载提升性能
Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Androi ...
- Fragment的懒加载
我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在 ...
- ViewPager+Fragment取消预加载(延迟加载)
在项目中,都或多或少地使用的Tab布局,所以大都会用到ViewPager+Fragment,但是Fragment有个不好或者太好的地方.例如你在ViewPager中添加了三个Fragment,当加载V ...
随机推荐
- OpenStack—nova组件计算服务
nova介绍: Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的. 用 ...
- 图的最小环floyed
最优的路线 问题描述 学校里面有N个景点.两个景点之间可能直接有道路相连,用Dist[I,J]表示它的长度:否则它们之间没有直接的道路相连.这里所说的道路是没有规定方向的,也就是说,如果从I到J有直接 ...
- skopeo---github简单记录
新的redhat 8已默认不集成docker,而是使用podman了. podman和skopeo和buildah,cri-o一起,组成了新一代的容器四大天王. 花时时间了解下,是值得的. skope ...
- Javascript数据结构与算法--栈的实现与用法
栈数据结构 栈是一种遵从后进先出(LIFO)原则的有序集合.新添加的或者待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 我们在生活中常能看到栈的 ...
- AngualrJS之自定义指令
一.指令 指令directive是AngularJS的核心之一 包括 - 用于扩展HTML元素.属性的指令 - 执行特定功能的指令 - 自定义指令 内置指令基本上都是以ng-开头 二.内置指令 1.属 ...
- sql server managerment 给表加说明
右击表 =>点属性 =>扩展属性 =>加 MS_Description
- json格式new Date()的一个小坑
见图:JSON.stringify( new Date(Date.parse('xxxx-xx-xx'))) 若是传的日期,在10号前,要进行转换.
- 1064 Financial Management
http://acm.hdu.edu.cn/showproblem.php?pid=1064 思路:看懂英文就很简单,就是12个数相加求平均数就ok了. 扩展: C++ 标准输入输出流的控制符 #in ...
- patch 请求时,关于id的报错问题
在更新操作时,先显示要更新的数据内容,再修改 在发送patch请求时出现 After applying the update to the document {_id: ObjectId('55be3 ...
- 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...