Android使用ViewPager实现顶部tabbar切换界面
时间:2022-07-27
本文章向大家介绍Android使用ViewPager实现顶部tabbar切换界面,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
类似的功能可以看看:
使用RadioGroup实现底部导航栏
进入正题
效果图:
注:PagerSlidingTabStrip为自定义控件,用于切换界面,此处不便贴出代码
1.主界面xml布局中添加ViewPager控件:
<android.support.v4.view.ViewPager
android:id="@+id/pager_view"
android:layout_width="match_parent"
android:layout_height="match_parent" /
2.主界面的activity代码:
FrOrderList和FrFoodList分别为内部的fragment页面
String[] tabs = {"坚果", "肉脯", "果冻"};
private MyPagerAdpater adpater;
//为ViewPager添加Adpater
adpater = new MyPagerAdpater(getSupportFragmentManager());
pagerView.setOffscreenPageLimit(4);
pagerView.setAdapter(adpater);
class MyPagerAdpater extends FragmentPagerAdapter {
public MyPagerAdpater(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
switch (position){
case 0:
return FrOrderList.newInstance( 0);
case 1:
return FrFoodList.newInstance( 1);
case 2:
return FrOrderList.newInstance( 2);
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
return tabs[position];
}
@Override
public int getCount() {
return tabs.length;
}
}
3.内部fragment页面: 其布局只是为了纯显示,所以只添加了一个textview
<TextView
android:id="@+id/tv_content"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="32sp"
android:textColor="#63B8FF"
android:text="999"/
activity代码:
整个流程为:
public static FrFoodList newInstance(int mState)
–》public void onCreate(@Nullable Bundle savedInstanceState)
–》public View onCreateView
–》public void initView()
public class FrFoodList extends Fragment {
TextView tvContent;
private static String DATAKEY = "STATE";
private int mState = 0;
public static FrFoodList newInstance(int mState) {
FrFoodList frFoodList = new FrFoodList();
Bundle bundle = new Bundle();
bundle.putInt( DATAKEY, mState);
frFoodList.setArguments(bundle);
return frFoodList;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mState = getArguments().getInt( DATAKEY);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_food_list, null);
tvContent = (TextView) view.findViewById(R.id.tv_content);
initView();
return view;
}
public void initView(){
switch ( mState ){
case 0:
tvContent.setText( "一大波坚果即将来袭~~~" );
break;
case 1:
tvContent.setText( "好吃又香,美味抵挡不住(^_^)" );
break;
case 2:
tvContent.setText( "浪漫气息,粉嫩可爱(*_*)" );
break;
}
}
}
FrOrderList的写法和这个类似。
以上就是本文的全部内容,希望对大家的学习有所帮助。
- ssh服务、密钥登陆配置
- 本地yum仓库搭建及rpm软件包定制
- CentOS6.9-zabbix3.2启动失败原因及页面没有mysql选择项
- inotify软件部署及实时同步
- Linux下批量修改文件名方法
- Tomcat启动慢解决方法(本人CentOS7.4系统)
- Nginx软件部署配置过程
- iptables网络安全服务详细使用
- 未来哪个行业能赚钱,看百度、阿里、腾讯投资的企业你就知道了!
- Augmate公司应用分布式账本技术,将IOTA整合为物联网设备管理平台
- 一域名一年前六位数终端易主 是为了......
- 黑客通过Facebook Messenger传播加密货币挖掘恶意软件
- linq to sql的多条件动态查询(下)
- iptables网络安全服务详细使用
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 我是这么以非root安装R语言和相关packages的
- Vuex详细教程
- 线程池submit和execute,搞不好会引发线上故障
- Window open使用教程
- kafka发送客户端在高并发场景下如何保证不频繁GC的
- 几个小细节帮你提升java代码运行效率
- spring data操作ES简直不能再香
- 国防科大提出基于可变形三维卷积(D3Dnet)的视频超分辨,代码已开源
- 不要被kafka的异步模式欺骗了
- 给你总结几个ES下最容易踩的坑
- ES系列之利用filter让你的查询效率飞起来
- ES主分片和副本数据大小不一样的情况
- 关于kibana的可视化可能都在这篇文章里了
- ES分页看这篇就够了
- ES系列之原来查看文档数量有这么多姿势