虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Android编程 > Android使用ViewPager实现顶部tabbar切换界面

Android使用ViewPager实现顶部tabbar切换界面
类别: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 切换