Tablayout+viewpager

创建布局

     
     
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"
  4.     android:layout_width="match_parent"
  5.     android:layout_height="match_parent"
  6.     android:orientation="vertical">
  7.  
  8.  
  9.     <!--app:tabMode="scrollable"  这个属性我在代码中设置了-->
  10.    <!-- tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);-->
  11.     <android.support.design.widget.TabLayout
  12.         android:id="@+id/sliding_tabs"
  13.         android:layout_width="match_parent"
  14.         android:layout_height="wrap_content"
  15.          />
  16.  
  17.     <android.support.v4.view.ViewPager
  18.         android:id="@+id/viewpager"
  19.         android:layout_width="match_parent"
  20.         android:layout_height="0px"
  21.         android:layout_weight="1"
  22.         android:background="@android:color/white" />
  23.  
  24. </LinearLayout>

创建Fragment

          
          
  1. public class PageFragment extends Fragment {
  2.  
  3.     public static final String ARG_PAGE = "ARG_PAGE";
  4.     private int mPage;
  5.  
  6.     public static PageFragment newInstance(int page) {
  7.         Bundle args = new Bundle();
  8.         args.putInt(ARG_PAGE, page);
  9.         PageFragment pageFragment = new PageFragment();
  10.         pageFragment.setArguments(args);
  11.         return pageFragment;
  12.     }
  13.  
  14.     @Override
  15.     public void onCreate(Bundle savedInstanceState) {
  16.         super.onCreate(savedInstanceState);
  17.         mPage = getArguments().getInt(ARG_PAGE);
  18.     }
  19.  
  20.     @Nullable
  21.     @Override
  22.     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  23.         View view = inflater.inflate(R.layout.fragment_page, container, false);
  24.         TextView textView = (TextView) view;
  25.         textView.setText("Fragment #" + mPage);
  26.         return view;
  27.     }
  28.  
  29. }

其中Fragment的布局为:

          
          
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <TextView xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:gravity="center" />

ViewPager的适配器

          
          
  1. public class SimpleFragmentPagerAdapter extends FragmentPagerAdapter {
  2.  
  3.     final int PAGE_COUNT = 3;
  4.     private String tabTitles[] = new String[]{"tab1","tab2","tab3"};
  5.     private Context context;
  6.  
  7.     public SimpleFragmentPagerAdapter(FragmentManager fm,Context context) {
  8.         super(fm);
  9.         this.context = context;
  10.     }
  11.  
  12.     @Override
  13.     public Fragment getItem(int position) {
  14.         return PageFragment.newInstance(position + 1);
  15.     }
  16.  
  17.     @Override
  18.     public int getCount() {
  19.         return PAGE_COUNT;
  20.     }
  21.  
  22.     @Override
  23.     public CharSequence getPageTitle(int position) {
  24.         return tabTitles[position];
  25.     }
  26. }

设置TabLayout

          
          
  1. package me.chenfuduo.myfragmentdemo;
  2.  
  3. import android.os.Bundle;
  4. import android.support.design.widget.TabLayout;
  5. import android.support.v4.app.FragmentActivity;
  6. import android.support.v4.view.ViewPager;
  7. import android.view.Menu;
  8. import android.view.MenuItem;
  9.  
  10. import me.chenfuduo.myfragmentdemo.adapter.SimpleFragmentPagerAdapter;
  11.  
  12. public class ThirdActivity extends FragmentActivity {
  13.  
  14.     private SimpleFragmentPagerAdapter pagerAdapter;
  15.  
  16.     private ViewPager viewPager;
  17.  
  18.     private TabLayout tabLayout;
  19.  
  20.     @Override
  21.     protected void onCreate(Bundle savedInstanceState) {
  22.         super.onCreate(savedInstanceState);
  23.         setContentView(R.layout.activity_third);
  24.         pagerAdapter = new SimpleFragmentPagerAdapter(getSupportFragmentManager(), this);
  25.         viewPager = (ViewPager) findViewById(R.id.viewpager);
  26.         viewPager.setAdapter(pagerAdapter);
  27.         tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
  28.         tabLayout.setupWithViewPager(viewPager);//setupWithViewPager必须在ViewPager.setAdapter()之后调用
  29.         tabLayout.setTabMode(TabLayout.MODE_FIXED);
  30.     }
  31. }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值