android——material design实现Tab标签

来源:互联网 发布:索尼手机 知乎 编辑:程序博客网 时间:2024/06/05 20:19

非常简单的实现Tab标签,用Viewpager+Fragment实现的。
这里写图片描述

有两个关键点:
1、Activity集成FragmentActivity
2、重写FragmentPagerAdapter的适配器

实现:
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:layout_width="fill_parent"    android:layout_height="fill_parent"    android:background="#ffffff"    android:orientation="vertical">    <!--头部的便签 优点:样式随意定制-->    <LinearLayout        android:background="#FFD9EC"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">        <TextView            android:onClick="firstClick"            android:id="@+id/first"            style="@style/topTextStyle"            android:text="1" />        <TextView            android:id="@+id/second"            style="@style/topTextStyle"            android:text="2" />        <TextView            android:id="@+id/three"            style="@style/topTextStyle"            android:text="3" />    </LinearLayout>    <View        android:layout_width="fill_parent"        android:layout_height="1px"        android:background="@color/darkcyan" />    <!-- 存放Fragment显示内容-->    <android.support.v4.view.ViewPager        android:id="@+id/myviewpager"        android:layout_width="match_parent"        android:layout_height="match_parent"        app:layout_behavior="@string/appbar_scrolling_view_behavior" /></LinearLayout>

Activity:

import android.app.Activity;import android.graphics.Color;import android.os.Bundle;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 android.view.View;import android.widget.TextView;import android.widget.Toast;/** * @author huqing * @date 2015/11/17 10:57 */public class Demo2 extends AppCompatActivity {    private TextView three;    private TextView first;    private TextView second;    private ViewPager myviewpager;    private android.support.v4.app.Fragment fragment = null;    private SectionsPagerAdapter mSectionsPagerAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.acty_demo_two);        findView();        initViewPage();    }    private void initViewPage() {        mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());        myviewpager.setAdapter(mSectionsPagerAdapter);        myviewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {                switch (position) {                    case 0:                        initAllPic(0);                        break;                    case 1:                        initAllPic(1);                        break;                    case 2:                        initAllPic(2);                        break;                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    private void findView() {        first = (TextView) findViewById(R.id.first);        second = (TextView) findViewById(R.id.second);        three = (TextView) findViewById(R.id.three);        myviewpager = (ViewPager) findViewById(R.id.myviewpager);    }    private void initAllPic(int i) {        first.setTextColor(Color.CYAN);        second.setTextColor(Color.CYAN);        three.setTextColor(Color.CYAN);        if (i == 0) {            first.setTextColor(Color.BLUE);        } else if (i == 1) {            second.setTextColor(Color.BLUE);        } else {            three.setTextColor(Color.BLUE);        }    }    public class SectionsPagerAdapter extends FragmentPagerAdapter {        public SectionsPagerAdapter(FragmentManager fm) {            super(fm);        }        @Override        public android.support.v4.app.Fragment getItem(int position) {            switch (position) {                case 0:                    fragment = ShouYeFragment.newInstance();                    break;                case 1:                    fragment = FenLeiFragment.newInstance();                    break;                case 2:                    fragment = GouWuFragment.newInstance();                    break;            }            return fragment;        }        @Override        public int getCount() {            return 3;        }    }    private long exitTime = 0;    /**     * 点击第一个标签     *     * @param view     */    public void firstClick(View view) {        myviewpager.setCurrentItem(0);        initAllPic(0);    }    /**     * 双击退出     */    @Override    public void onBackPressed() {        if ((System.currentTimeMillis() - exitTime) > 2000) {            Toast.makeText(Demo2.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();            exitTime = System.currentTimeMillis();        } else {            finish();        }    }}
0 0