Android Tablayout 结合ViewPager实现滑动界面

来源:互联网 发布:.cn域名的ns记录 查询 编辑:程序博客网 时间:2024/05/22 13:05

1.导入依赖

compile 'com.android.support:design:26.0.0-alpha1'

2.布局设置

    <android.support.design.widget.TabLayout        android:id="@+id/tab_layou"        android:layout_width="match_parent"        app:tabIndicatorColor="#f00"        app:tabTextColor="@android:color/darker_gray"        app:tabSelectedTextColor="@android:color/black"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_centerHorizontal="true" />    <View        android:layout_width="match_parent"        android:layout_height="1dp"        android:background="#ccc"        android:layout_below="@+id/tab_layou"        />    <android.support.v4.view.ViewPager        android:id="@+id/view_pager"        android:layout_below="@id/tab_layou"        android:layout_width="match_parent"        android:layout_height="match_parent" />
3.Activity 代码简介

import android.os.Bundle;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import java.util.ArrayList;import java.util.List;import zhoukao.bick.com.xiangmu2yuekao.fragment.Fragment1;import zhoukao.bick.com.xiangmu2yuekao.fragment.Fragment2;import zhoukao.bick.com.xiangmu2yuekao.fragment.Fragment3;public class MainActivity extends AppCompatActivity  implements TabLayout.OnTabSelectedListener {    private TabLayout tabLayout;    private ViewPager viewPager;    private MyViewPagerAdapter viewPagerAdapter;    //TabLayout标签    private String[] titles=new String[]{"页面一","页面二","页面三"};    private List<Fragment> fragments=new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init(){        tabLayout=(TabLayout)findViewById(R.id.tab_layou);        viewPager=(ViewPager)findViewById(R.id.view_pager);        //设置TabLayout标签的显示方式        tabLayout.setTabMode(TabLayout.MODE_FIXED);        //循环注入标签        for (String tab:titles){            tabLayout.addTab(tabLayout.newTab().setText(tab));        }        //设置TabLayout点击事件        tabLayout.setOnTabSelectedListener(this);        fragments.add(new Fragment1());        fragments.add(new Fragment2());        fragments.add(new Fragment3());        viewPagerAdapter=new MyViewPagerAdapter(getSupportFragmentManager(),titles,fragments);        viewPager.setAdapter(viewPagerAdapter);        tabLayout.setupWithViewPager(viewPager);    }    /**     * 监听事件     * @param tab     */    @Override    public void onTabSelected(TabLayout.Tab tab) {        viewPager.setCurrentItem(tab.getPosition());    }    @Override    public void onTabUnselected(TabLayout.Tab tab) {    }    @Override    public void onTabReselected(TabLayout.Tab tab) {    }    /**     * 适配器 内部类     */    class MyViewPagerAdapter extends FragmentPagerAdapter {        private List<Fragment> fragments;        private String[] titles;        public MyViewPagerAdapter(FragmentManager fm, String[] titles, List<Fragment> fragments) {            super(fm);            this.titles = titles;            this.fragments = fragments;        }        @Override        public Fragment getItem(int arg0) {            return fragments.get(arg0);        }        @Override        public CharSequence getPageTitle(int position) {            return titles[position];        }        @Override        public int getCount() {            return fragments.size();        }    }}



阅读全文
0 0
原创粉丝点击