当前位置: 移动技术网 > IT编程>移动开发>Android > Android使用ViewPager实现顶部tabbar切换界面

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

西王母献益地图,夜之祭礼,王亦丰整容

类似的功能可以看看:

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

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网