使用TabLayout和ViewPager实现顶部标签页

来源:互联网 发布:linux配置自动获取ip 编辑:程序博客网 时间:2024/06/05 15:09
如果没有这个倒包,可以在Gradle添加:
import android.support.design.widget.TabLayout;
compile 'com.android.support:design:24.0.0'

XML:
<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <LinearLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:orientation="vertical"        app:layout_behavior="@string/appbar_scrolling_view_behavior">        <android.support.design.widget.TabLayout            android:id="@+id/tab_main"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:background="#f2acd9"            app:tabGravity="fill"            app:tabIndicatorColor="#FFFFFF"            app:tabIndicatorHeight="4dp"            app:tabMode="fixed"            app:tabSelectedTextColor="#FFFFFF"            app:tabTextColor="#FFFFFF">        </android.support.design.widget.TabLayout>        <android.support.v4.view.ViewPager            android:id="@+id/vp_main"            android:layout_width="match_parent"            android:layout_height="wrap_content">        </android.support.v4.view.ViewPager>    </LinearLayout></android.support.design.widget.CoordinatorLayout>

Fragment:
package com.kczd.dictionary.fragment.Navigation;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.kczd.dictionary.R;import com.kczd.dictionary.adapter.HearingAdapter;/** *  *  * Created by Administrator on 2017/5/5. */public class HearingFragment extends Fragment {    private View view;    private TabLayout mTabLayout;    private ViewPager mViewPager;    private HearingAdapter myFragmentPagerAdapter;    private TabLayout.Tab one;    private TabLayout.Tab two;    private TabLayout.Tab three;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        view = inflater.inflate(R.layout.hearing_fragment, null);        initView();        return view;    }    private void initView() {        mTabLayout = (TabLayout) view.findViewById(R.id.tab_main);        mViewPager = (ViewPager) view.findViewById(R.id.vp_main);        myFragmentPagerAdapter = new HearingAdapter(getFragmentManager());        mViewPager.setAdapter(myFragmentPagerAdapter);        //将TabLayout和ViewPager绑定在一起,使双方各自的改变都能直接影响另一方,解放了开发人员对双方变动事件的监听        mTabLayout.setupWithViewPager(mViewPager);        //指定Tab的位置        one = mTabLayout.getTabAt(0);        two = mTabLayout.getTabAt(1);        three = mTabLayout.getTabAt(2);        //        //给tab设置图标        //        one.setIcon(R.mipmap.ic_launcher);    }}
Adapter:
package com.kczd.dictionary.adapter;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import com.kczd.dictionary.fragment.Hearing.Fragment1;import com.kczd.dictionary.fragment.Hearing.Fragment2;import com.kczd.dictionary.fragment.Hearing.Fragment3;/** * Created by Administrator on 2017/8/22. */public class HearingAdapter extends FragmentPagerAdapter{    private String[] mTitles = new String[]{"教程下", "教程下", "口语教程"};    public HearingAdapter(FragmentManager fm) {        super(fm);    }    @Override    public Fragment getItem(int position) {        if (position == 1) {            return new Fragment2();        } else if (position == 2) {            return new Fragment3();        }        return new Fragment1();    }    @Override    public int getCount() {        return mTitles.length;    }    //用来设置tab的标题    @Override    public CharSequence getPageTitle(int position) {        return mTitles[position];    }}

剩下的就是Fragment1,Fragment2,Fragment3动手去写吧,,,,
 
阅读全文
0 0