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模型事件监听与解耦开发【指南】  高性能网站服务器配置指南:安全稳定与高效建站核心方案  独立制作一个网站多少钱,建立网站需要花多少钱?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  网页设计与网站制作内容,怎样注册网站?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  详解Android图表 MPAndroidChart折线图  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  详解Oracle修改字段类型方法总结  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  高防服务器如何保障网站安全无虞?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  如何在阿里云域名上完成建站全流程?  详解jQuery停止动画——stop()方法的使用  如何在万网主机上快速搭建网站?  如何用IIS7快速搭建并优化网站站点?  如何在云主机上快速搭建网站?  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  Thinkphp 中 distinct 的用法解析  长沙做网站要多少钱,长沙国安网络怎么样?  浅谈javascript alert和confirm的美化  如何登录建站主机?访问步骤全解析  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  EditPlus 正则表达式 实战(3)  WordPress 子目录安装中正确处理脚本路径的完整指南  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  浅谈Javascript中的Label语句  Laravel如何生成URL和重定向?(路由助手函数)  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  JS碰撞运动实现方法详解  如何确认建站备案号应放置的具体位置?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  在Oracle关闭情况下如何修改spfile的参数  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  如何正确下载安装西数主机建站助手?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Laravel观察者模式如何使用_Laravel Model Observer配置  香港服务器建站指南:免备案优势与SEO优化技巧全解析  简历在线制作网站免费版,如何创建个人简历?  如何在阿里云通过域名搭建网站?  如何快速上传建站程序避免常见错误?