tablelayout +viewpage+Fragment
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相关推荐
- ViewPage+Fragment的使用例子
2013年9月6日Fragment学习 Fragment这个东西,我到现在才接触到,之前没有用到过,关于Fragment这个东西在官方文档已经介绍了非常清楚了,我还特地转载了官方API的中文翻译,在这 ...
- activity中fragment 返回键不退出_优雅地处理加载中(loading),重试(retry)和无数据(empty)等...
LoadSir是一个高效易用,低碳环保,扩展性良好的加载反馈页管理框架,在加载网络或其他数据时候,根据需求切换状态页面,可添加自定义状态页面,如加载中,加载失败,无数据,网络超时,占位图,登录失效等常 ...
- Android多个fragment懒加载的坑(卡顿)
在Android开发中,有很多种情况都是viewpage+fragment左右滑动进行布局的,例如下面的今日头条 在今日头条app上,我们可以看到,其顶部都是一栏的类型数据源,可滑动,可联动下面的vi ...
- Fragment 懒加载
为何懒加载 在很多 App 都会有ViewPage + Fragment 的基本组合,但是众所周知 viewPager 的 预加载机制,即使设置函数 setOffscreenPageLimit(0) ...
- Android典型界面设计(3)——访网易新闻实现双导航tab切换
一.问题描述 双导航tab切换(底部区块+区域内头部导航),实现方案底部区域使用FragmentTabHost+Fragment, 区域内头部导航使用ViewPager+Fragment,可在之前博客 ...
- android 控件 margin,Android MarginDesign控件TabLayout导航栏使用详解
TabLayout的使用简单介绍 比如在平常的项目中实现这样的效果,一般都是都会使用viewPageIndicate等几个开源框架直接实现,或者使用自定义的HorizontalScroll再配合Vie ...
- Android-导航栏特效-新闻类APP(仿iOS版网易新闻今日头条的文字渐变缩放特效)
好久没有写文章了,慢慢的自己工作中遇到的问题不做积累,下次遇到还会忘.哎.... 周日无聊的单身程序员-唯有程序你懂的... 写着程序听着歌也是极好的!! 最近工作中要实现类似 今日头条等新闻类APP ...
- 2016年最经典的高仿系列源码打包下载4.84G
│ JAVAapk.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2015.11.04更新.txt ...
- Android开发技术框架和编码规范
Android开发技术框架和编码规范 2017年11月23日 目录 第一章 绪论.................................................... ...
- ym——android源代码大放送(实战开发必备)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 目录 PATH 列表 卷序列号为 000A-8F50 E:. │ javaapk.c ...
最新文章
- linux区分用户的权限级别可用,如何限制Linux内核级别的特权用户访问?
- SAP CRM Fiori participant的图片显示调试全过程
- mysql实例怎么复制_Mysql实例MySQL数据库复制概论
- vue+elementUI 显示表格指定列合计数据
- MFC中的CFileFind类
- 查找整数的位置c语言,1-1 编程总结:查找整数
- StanfordDB class自学笔记 (7) SQL
- iOS5编程--官方例子代码的研究--2.UICatalog-6
- 微信小程序累计独立访客(UV)不低于 1000 是什么意思
- seaweedfs学习
- vue开发必备神器:vue-devtools
- 重装系统后有一个磁盘打不开,提示没有权限
- php显示某年某月某日,C++_C++自定义函数判断某年某月某日是这一年中第几天,本文实例讲述了C++自定义函数 - phpStudy...
- FlashVml2.0(WEB上的PhotoShop+Flash、VML最强开发工具)
- IEEE-754例题
- 【Android开发】App消息中心构建
- 二级路由器下的pc如何使用映射网络驱动器的方式添加一级路由器下nas共享的文件夹
- VS2017 无法启动 IIS EXPRESS Web 服务器。 工作进程未能正确初始化,因而无法启动。返回的数据为错误信息。已解决!!!
- 用python把Excel表中不同货币的资金换算成人民币
- 全球大学计算机人工智能排名,全球大学计算机实力排名:清北人工智能内地前二...
热门文章
- 《植物大战僵尸》游戏数据修改
- 爱剪辑显示服务器繁忙,爱剪辑视频卡顿怎么回事 爱剪辑视频卡顿解决方法
- 50个C/C++面试题
- 人脸对齐:Procrustes analysis 普氏分析
- ArcCatalog 连接远程SDE 连接字符
- linux 文件夹转gb2312,Linux下将UTF8编码批量转换成GB2312编码的方法
- CES这个会下腰的中国机器人火了,大型仿人机器人市场迎来“头号玩家”
- IOS开发之逆向分析
- 【mcuclub】舵机-SG90
- RFID定位技术下的资产管理与应急仓储物流--RFID资产管理--新导智能