Android 6.0特性(TabLayout)
1, 实现效果
#指示器
跟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);