Android 6.0特性(TabLayout)

1, 实现效果

 

Android 6.0特性(TabLayout)

#指示器

跟ViewPager 有一个指示器开源控件。

 

1.引导页面  CircleIndicator

2.新闻  频道。TabIndicator

 

TabLayout 6.0提供的指示器。

作用:给ViewPager指示标题。

用法:

1.将ViewPager初始化

2.将viewPager设置给指示器

 

 

2,实现逻辑

依赖

compile 'com.android.support:design:23.2.0'

【1】创建布局

  •   app:tabBackground="@android:color/transparent" 去除水波纹效果

  • 如果有些效果不了,可以设置命名空间在XML文件进行设置。自定义属性

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"

    android:layout_width="match_parent" android:layout_height="match_parent"

    tools:context="com.itheima.a005design.MainActivity">

    <android.support.design.widget.TabLayout

        android:layout_width="match_parent"

        xmlns:app="http://schemas.android.com/apk/res-auto"

        app:tabBackground="@android:color/transparent"

        android:background="#FFF000"

        android:id="@+id/indicator"

        android:layout_height="50dp">

    </android.support.design.widget.TabLayout>

    <android.support.v4.view.ViewPager

        android:id="@+id/viewpager"

        android:layout_width="match_parent"

        android:layout_marginTop="50dp"

        android:layout_height="match_parent">

    </android.support.v4.view.ViewPager>

</FrameLayout>

【2】初始化ViewPager然后配置TabLayout

  • MyPagerAdapter

public class MyPagerAdapter extends FragmentPagerAdapter {

    public MyPagerAdapter(FragmentManager fm) {

        super(fm);

    }

    @Override

    public Fragment getItem(int position) {

        return new MyFragment();

    }





    //页面标题

    @Override

    public CharSequence getPageTitle(int position) {

        return "标题" + position;

    }





    @Override

    public int getCount() {

        return 2;

    }

}
  • 内部添加Fragment

public class MyFragment extends Fragment {

    @Nullable

    @Override

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        TextView textView=new TextView(container.getContext());

        textView.setGravity(Gravity.CENTER);

        textView.setTextSize(22);

        textView.setText("页面内容");

        textView.setBackgroundColor(Color.GREEN);

        return textView;

    }

}

 

  • 关联viewpager和TabLayout   

  • 注意展示模式//设置模式 MODE_SCROLLABLE针对数量   //MODE_FIXED适用于数量较少 使用平分

    

    MyPagerAdapter adapter=new MyPagerAdapter(getSupportFragmentManager());

        viewpager.setAdapter(adapter);

        //设置模式 MODE_SCROLLABLE针对数量比较多的条目

        //MODE_FIXED适用于数量较少 使用平分

        toolbar.setTabMode(TabLayout.MODE_FIXED);

        //设置ViewPager关联

        toolbar.setupWithViewPager(viewpager);



        //设置外观

        toolbar.setBackgroundColor(Color.parseColor("#673AB7"));

        //线的颜色

        toolbar.setSelectedTabIndicatorHeight(4);

        toolbar.setSelectedTabIndicatorColor(Color.WHITE);





        //设置选中的字体的颜色

        int normal=Color.GRAY;

        int selected=Color.WHITE;

        toolbar.setTabTextColors(normal,selected);