Tablayout初使用(笔记)

来源:互联网 发布:js中top 编辑:程序博客网 时间:2024/05/21 16:13

看了TabLayout相关的演示效果,也有不少说明说这是个容易上手的东西,所以就开始尝试使用这东西。为了加上滑动的效果,就在此基础上加了ViewPager,不过我对ViewPager的东西也不熟,所以也趁这个机会把ViewPager的东西也了解学习下。


简单实现TabLayout:

activity_homepage.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <android.support.design.widget.TabLayout        android:id="@+id/tl_homepage"        android:layout_width="match_parent"        android:layout_height="wrap_content"        app:tabTextColor="@color/font_white"        app:tabMode="fixed"        app:tabSelectedTextColor="@color/font_white"        app:tabIndicatorColor="@color/white"        app:tabBackground="@color/primaryColor">    </android.support.design.widget.TabLayout>    <android.support.v4.view.ViewPager        android:id="@+id/vp_homepage"        android:layout_width="match_parent"        android:layout_height="match_parent">    </android.support.v4.view.ViewPager></LinearLayout>


HomePageActivity.class

public class HomePageActivity extends BaseActivity{    private TabLayout tabLayout;    private ViewPager viewPager;    private HomePageViewPagerAdapter homePageViewPagerAdapter;    private FragmentManager fragmentManager;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_homepage);        initView();        initData();        setListener();    }    @Override    public void initView() {        tabLayout = (TabLayout) findViewById(R.id.tl_homepage);        viewPager = (ViewPager) findViewById(R.id.vp_homepage);    }    @Override    public void initData() {        fragmentManager = getSupportFragmentManager();        homePageViewPagerAdapter = new HomePageViewPagerAdapter(fragmentManager , this);        viewPager.setAdapter(homePageViewPagerAdapter);        //联结tablayout和viewpager        tabLayout.setupWithViewPager(viewPager);    }    @Override    public void setListener() {    }}


HomePageViewPagerAdapter.class

public class HomePageViewPagerAdapter extends FragmentPagerAdapter {    private Context mContext;    private HomePageFragment homePageFragment;    private RouteFragment routeFragment;    private SettingFragment settingFragment;    private List<Fragment> fragmentList;    private String tabTitles[] = new String[]{"首页" ,"轨迹" , "设置"};    public HomePageViewPagerAdapter(FragmentManager fm , Context context) {        super(fm);        mContext = context;        fragmentList = new ArrayList<Fragment>();        homePageFragment = new HomePageFragment();        routeFragment = new RouteFragment();        settingFragment = new SettingFragment();        fragmentList.add(homePageFragment);        fragmentList.add(routeFragment);        fragmentList.add(settingFragment);    }    @Override    public Fragment getItem(int position) {       return fragmentList.get(position);    }    @Override    public int getCount() {        return fragmentList.size();    }    @Override    public CharSequence getPageTitle(int position) {        return tabTitles[position];    }}

效果:





0 0