tablelayout +viewpage+Fragment

先导入implementation ‘com.android.support:design:29.0.0’
注意tablelayout在xml中不能直接用
<TableLayout要用<com.google.android.material.tabs.TabLayout
java中导包 import com.google.android.material.tabs.TabLayout;

MainActivity

public class MainActivity extends AppCompatActivity {private TabLayout mTableLayout;private ViewPager mViewPager;List<Fragment> fragments = new ArrayList<>();private List<String> mStringList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTableLayout = findViewById(R.id.mian_tablelayout);mViewPager = findViewById(R.id.mian_viewpager);//在集合里添加已经创建的fragmentfragments.add(new first());fragments.add(new second());mStringList.add("第一页");mStringList.add("第二页");ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(),fragments,mStringList);mViewPager.setAdapter(adapter);mTableLayout.setupWithViewPager(mViewPager);}
}

activity_main

<?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"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><com.google.android.material.tabs.TabLayoutandroid:layout_width="match_parent"android:layout_height="40dp"android:id="@+id/mian_tablelayout"app:tabSelectedTextColor="#A73870"android:background="#ffffff"app:layout_constraintTop_toTopOf="parent"/><androidx.viewpager.widget.ViewPagerandroid:id="@+id/mian_viewpager"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>

ViewPager的适配器 这里用的是FragmentPagerAdapter

public class ViewPagerAdapter extends FragmentPagerAdapter {List<Fragment> mFragmentList ;List<String> mStringList;public ViewPagerAdapter(@NonNull FragmentManager fm,List<Fragment> mFragmentList,List<String> mStringList) {super(fm);this.mFragmentList = mFragmentList;this.mStringList = mStringList;}@NonNull@Overridepublic Fragment getItem(int position) {return mFragmentList.get(position);}@Overridepublic int getCount() {return mFragmentList.size();}@Nullable@Overridepublic CharSequence getPageTitle(int position) {return mStringList.get(position);}
}

其中一个fragment

public class first extends Fragment {View mView;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment_first, null);TextView textView = view.findViewById(R.id.text_1);textView.setText("aaa");return view;}
}<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".ui.fragment.first"><TextViewandroid:id="@+id/text_1"android:layout_width="match_parent"android:layout_height="match_parent"android:text="第一页"android:gravity="center_horizontal"android:textSize="20sp"/></FrameLayout>

tablelayout +viewpage+Fragment相关推荐

  1. ViewPage+Fragment的使用例子

    2013年9月6日Fragment学习 Fragment这个东西,我到现在才接触到,之前没有用到过,关于Fragment这个东西在官方文档已经介绍了非常清楚了,我还特地转载了官方API的中文翻译,在这 ...

  2. activity中fragment 返回键不退出_优雅地处理加载中(loading),重试(retry)和无数据(empty)等...

    LoadSir是一个高效易用,低碳环保,扩展性良好的加载反馈页管理框架,在加载网络或其他数据时候,根据需求切换状态页面,可添加自定义状态页面,如加载中,加载失败,无数据,网络超时,占位图,登录失效等常 ...

  3. Android多个fragment懒加载的坑(卡顿)

    在Android开发中,有很多种情况都是viewpage+fragment左右滑动进行布局的,例如下面的今日头条 在今日头条app上,我们可以看到,其顶部都是一栏的类型数据源,可滑动,可联动下面的vi ...

  4. Fragment 懒加载

    为何懒加载 在很多 App 都会有ViewPage + Fragment 的基本组合,但是众所周知 viewPager 的 预加载机制,即使设置函数 setOffscreenPageLimit(0) ...

  5. Android典型界面设计(3)——访网易新闻实现双导航tab切换

    一.问题描述 双导航tab切换(底部区块+区域内头部导航),实现方案底部区域使用FragmentTabHost+Fragment, 区域内头部导航使用ViewPager+Fragment,可在之前博客 ...

  6. android 控件 margin,Android MarginDesign控件TabLayout导航栏使用详解

    TabLayout的使用简单介绍 比如在平常的项目中实现这样的效果,一般都是都会使用viewPageIndicate等几个开源框架直接实现,或者使用自定义的HorizontalScroll再配合Vie ...

  7. Android-导航栏特效-新闻类APP(仿iOS版网易新闻今日头条的文字渐变缩放特效)

    好久没有写文章了,慢慢的自己工作中遇到的问题不做积累,下次遇到还会忘.哎.... 周日无聊的单身程序员-唯有程序你懂的... 写着程序听着歌也是极好的!! 最近工作中要实现类似 今日头条等新闻类APP ...

  8. 2016年最经典的高仿系列源码打包下载4.84G

    │  JAVAapk.com文件列表生成.bat │  例子大全说明.txt │  本例子永久更新地址~.url │  目录列表2015.11.04更新.txt                    ...

  9. Android开发技术框架和编码规范

    Android开发技术框架和编码规范   2017年11月23日       目录 第一章 绪论.................................................... ...

  10. ym——android源代码大放送(实战开发必备)

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 目录 PATH 列表 卷序列号为 000A-8F50 E:. │  javaapk.c ...

最新文章

  1. linux区分用户的权限级别可用,如何限制Linux内核级别的特权用户访问?
  2. SAP CRM Fiori participant的图片显示调试全过程
  3. mysql实例怎么复制_Mysql实例MySQL数据库复制概论
  4. vue+elementUI 显示表格指定列合计数据
  5. MFC中的CFileFind类
  6. 查找整数的位置c语言,1-1 编程总结:查找整数
  7. StanfordDB class自学笔记 (7) SQL
  8. iOS5编程--官方例子代码的研究--2.UICatalog-6
  9. 微信小程序累计独立访客(UV)不低于 1000 是什么意思
  10. seaweedfs学习
  11. vue开发必备神器:vue-devtools
  12. 重装系统后有一个磁盘打不开,提示没有权限
  13. php显示某年某月某日,C++_C++自定义函数判断某年某月某日是这一年中第几天,本文实例讲述了C++自定义函数 - phpStudy...
  14. FlashVml2.0(WEB上的PhotoShop+Flash、VML最强开发工具)
  15. IEEE-754例题
  16. 【Android开发】App消息中心构建
  17. 二级路由器下的pc如何使用映射网络驱动器的方式添加一级路由器下nas共享的文件夹
  18. VS2017 无法启动 IIS EXPRESS Web 服务器。 工作进程未能正确初始化,因而无法启动。返回的数据为错误信息。已解决!!!
  19. 用python把Excel表中不同货币的资金换算成人民币
  20. 全球大学计算机人工智能排名,全球大学计算机实力排名:清北人工智能内地前二...

热门文章

  1. 《植物大战僵尸》游戏数据修改
  2. 爱剪辑显示服务器繁忙,爱剪辑视频卡顿怎么回事 爱剪辑视频卡顿解决方法
  3. 50个C/C++面试题
  4. 人脸对齐:Procrustes analysis 普氏分析
  5. ArcCatalog 连接远程SDE 连接字符
  6. linux 文件夹转gb2312,Linux下将UTF8编码批量转换成GB2312编码的方法
  7. CES这个会下腰的中国机器人火了,大型仿人机器人市场迎来“头号玩家”
  8. IOS开发之逆向分析
  9. 【mcuclub】舵机-SG90
  10. RFID定位技术下的资产管理与应急仓储物流--RFID资产管理--新导智能