Android使用ViewPager实现顶部tabbar切换界面

发布时间 - 2026-01-11 03:01:25    点击率:

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的写法和这个类似。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# ViewPager  # tabbar  # 切换  # Android实现界面左右滑动切换功能  # Android输入法与表情面板切换时的界面抖动问题解决方法  # Android实现闪屏及注册和登录界面之间的切换效果  # PagerSlidingTabStrip制作Android带标签的多界面滑动切换  # Android App仿微信界面切换时Tab图标变色效果的制作方法  # Android应用中使用ViewPager实现类似QQ的界面切换效果  # android编程实现局部界面动态切换的方法  # Android界面切换出现短暂黑屏的解决方法  # Android实现Activity界面切换添加动画特效的方法  # Android studio实现两个界面间的切换  # 大波  # 自定义  # 分别为  # 贴出  # 大家多多  # 来袭  # private  # tabs  # adpater  # MyPagerAdpater  # gt  # FrFoodList  # FrOrderList  # activity  # String  # fragment 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  JavaScript如何实现音频处理_Web Audio API如何工作?  如何自定义建站之星网站的导航菜单样式?  Laravel如何为API生成Swagger或OpenAPI文档  EditPlus中的正则表达式 实战(4)  如何获取免费开源的自助建站系统源码?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Laravel如何处理异常和错误?(Handler示例)  千库网官网入口推荐 千库网设计创意平台入口  nginx修改上传文件大小限制的方法  如何在阿里云通过域名搭建网站?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  如何快速启动建站代理加盟业务?  Android 常见的图片加载框架详细介绍  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  制作电商网页,电商供应链怎么做?  Bootstrap整体框架之CSS12栅格系统  高端建站三要素:定制模板、企业官网与响应式设计优化  实例解析angularjs的filter过滤器  Android Socket接口实现即时通讯实例代码  免费视频制作网站,更新又快又好的免费电影网站?  java ZXing生成二维码及条码实例分享  Laravel如何生成API文档?(Swagger/OpenAPI教程)  常州企业网站制作公司,全国继续教育网怎么登录?  Python自动化办公教程_ExcelWordPDF批量处理案例  Python3.6正式版新特性预览  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  Laravel如何使用Blade组件和插槽?(Component代码示例)  大连 网站制作,大连天途有线官网?  高端企业智能建站程序:SEO优化与响应式模板定制开发  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何快速搭建个人网站并优化SEO?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  长沙做网站要多少钱,长沙国安网络怎么样?  Android利用动画实现背景逐渐变暗  EditPlus 正则表达式 实战(3)  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  桂林网站制作公司有哪些,桂林马拉松怎么报名?  JavaScript模板引擎Template.js使用详解  中山网站推广排名,中山信息港登录入口?  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  如何用免费手机建站系统零基础打造专业网站?  Laravel如何使用模型观察者?(Observer代码示例)