TabLayout的简单使用

简介: 什么是TabLayoutTabLayout是Support Design Library库中的一个控件,它是用来进行分组的,同时也可以作为ViewPager的指示器TabLayout的简单使用●tab创建◇xml布局创建 ...

什么是TabLayout

TabLayout是Support Design Library库中的一个控件,它是用来进行分组的,同时也可以作为ViewPager的指示器

TabLayout的简单使用

●tab创建

◇xml布局创建
<android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:id="@+id/tablayout"
        android:layout_height="wrap_content">
        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:text="tab1" //设置tab显示的文字
            android:icon="@mipmap/ic_launcher" //设置tab的图片
            android:layout_height="wrap_content" />
        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:text="tab2"
            android:icon="@mipmap/ic_launcher"
            android:layout_height="wrap_content" />
        <android.support.design.widget.TabItem
            android:layout_width="wrap_content"
            android:text="tab3"
            android:icon="@mipmap/ic_launcher"
            android:layout_height="wrap_content" />
</android.support.design.widget.TabLayout>
◇Java代码动态创建
tabLayout=findViewById(R.id.tablayout);
tabLayout.addTab(tabLayout.newTab().setText("标签1").setIcon(R.mipmap.ic_launcher));
tabLayout.addTab(tabLayout.newTab().setText("标签2").setIcon(R.mipmap.ic_launcher));
tabLayout.addTab(tabLayout.newTab().setText("标签3").setIcon(R.mipmap.ic_launcher));
img_f2e03c684d5ebd96a891c79b89761583.gif

●tab的布局排版

tab的布局排版受两个属性限制app:tabMode【fixed(固定)、scrollable(滚动))】和app:tabGravity(fill(填充)、center(居中))

◇设置app:tabMode=“fixed”然后设置app:tabGravity分别为fill和center时的效果

1)app:tabGravity="fill"

<android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:id="@+id/tablayout"
        app:tabMode="fixed"
        app:tabGravity="fill"
        android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
img_0854192561d85db8f5f71721835df37a.png

2)app:tabGravity="center"

<android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:id="@+id/tablayout"
        app:tabMode="fixed"
        app:tabGravity="center"
        android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
img_2bebc24fe058dbe95dd4b002949e6358.png

◇设置app:tabMode=“scrollable”然后设置app:tabGravity分别为fill和center时的效果

1)app:tabGravity="fill"

<android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:id="@+id/tablayout"
        app:tabMode="scrollable"
        app:tabGravity="fill"
        android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
img_e71e0c977a2560c807f9384cc1f2f533.png

2)app:tabGravity="center"

<android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:id="@+id/tablayout"
        app:tabMode="scrollable"
        app:tabGravity="center"
        android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
img_4416e990966aefe6c00d695b4d0839b7.png

●其他设置

<android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:id="@+id/tablayout"
        app:tabMode="scrollable"
        app:tabGravity="center"
        app:tabIndicatorHeight="5dp" //设置指示线高度,如果想要隐藏指示线可以通过将该属性设置为0dp实现
        app:tabIndicatorColor="@color/colorPrimary" //设置指示线颜色
        app:tabTextColor="@color/colorPrimary" //设置未选中文字颜色
        app:tabSelectedTextColor="@color/colorRed" //设置选中文字颜色
        android:layout_height="wrap_content">

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

●绑定ViewPager

这里tab的Text是通过PagerAdapter的getPageTitle方法获取的

public class TabLayoutSimpleActivity2 extends AppCompatActivity {
    ViewPager viewPager;
    TabLayout tabLayout;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tablayout_activitysimple);
        viewPager=findViewById(R.id.vp);
        tabLayout=findViewById(R.id.tablayout);
        viewPager.setAdapter(new PagerAdapter() {
            @Override
            public int getCount() {
                return 5;
            }

            @Override
            public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
                return view==object;
            }

            @NonNull
            @Override
            public Object instantiateItem(@NonNull ViewGroup container, int position) {
                TextView textView=new TextView(TabLayoutSimpleActivity2.this);
                textView.setTextSize(50);
                textView.setText(position+"");
                container.addView(textView);
                return textView;
            }

            @Override
            public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
                container.removeView((View) object);
            }

            @Nullable
            @Override
            public CharSequence getPageTitle(int position) {
                return "标签"+position;
            }
        });
        tabLayout.setupWithViewPager(viewPager);
    }
}
img_602b65e79d44247c5a33ad522edea6ed.gif

个人博客:https://myml666.github.io

目录
相关文章
|
Java Android开发
[笔记]Android 学习一之转场动画+ViewPager+ListView简单Demo
[笔记]Android 学习一之转场动画+ViewPager+ListView简单Demo
|
Android开发
侧滑菜单的简单使用
本节给大家带来基础UI控件部分的最后一个控件:DrawerLayout,官方给我们提供的一个侧滑菜单控件,和上一节的ViewPager一样,3.0以后引入,低版本使用它,需要v4兼容包,说到侧滑,相信很多人都用过github上的SlidingMenu,不过好像有两个版本,一个是单独的,另一个需要依赖另一个开源项目:ActionBarSherlock;既然Google为我们提供了这个控件,为何不用咧,而且在Material Design设计规范中,随处可见的很多侧滑菜单的动画效果,大都可以通过Toolbar +DrawerLayout来实现。
|
Android开发
ViewFlipper的基本使用
ViewFlipper,它是Android自带的一个多页面管理控件,且可以自动播放! 和ViewPager不同,ViewPager是一页页的,而ViewFlipper则是一层层的,和ViewPager一样,很多时候, 用来实现进入应用后的引导页,或者用于图片轮播。
122 0
|
API Android开发
AutoCompleteTextView的基本使用
本节继续来学习Adapter类的控件,这次带来的是AutoCompleteTextView(自动完成文本框)。 官方API:AutoCompleteTextView
164 0
|
Android开发
DrawerLayout(官方侧滑菜单)的简单使用
本节给大家带来基础UI控件部分的最后一个控件:DrawerLayout,官方给我们提供的一个侧滑菜单控件,和上一节的ViewPager一样,3.0以后引入,低版本使用它,需要v4兼容包,说到侧滑,相信很多人都用过github上的SlidingMenu,不过好像有两个版本,一个是单独的,另一个需要依赖另一个开源项目:ActionBarSherlock;既然Google为我们提供了这个控件,为何不用咧,而且在Material Design设计规范中,随处可见的很多侧滑菜单的动画效果,大都可以通过Toolbar +DrawerLayout来实现。 1.使用的注意事项 1.主内容视图一定要是Dra
|
Android开发 索引
Android RecyclerView的简单使用
RecyclerView 是作为 ListView 和 GridView 的加强版出现的,目的是在有限的屏幕之上展示大量的内容,因此 RecyclerView 的复用机制的实现是它的一个核心部分,复用机制可以显著提高性能,改善应用响应能力并降低功耗。
213 0
Android RecyclerView的简单使用
|
Android开发
Android Studio引入侧边栏SlidingMenu,配置及简单使用
Android Studio引入侧边栏SlidingMenu,配置及简单使用
967 0
|
Android开发 数据格式 XML
FloatingActionButton的简单使用
FloatingActionButton是Support Design Library库中引入的一个新的控件,外观时尚新颖,受到很多开发者的好评。 如何使用FloatingActionButton 使用FloatingActionButton其实非常简单只需要在布局文件中引入控件即可,不过它的属性有点多,我们先来介绍一下它的属性。
1817 0
|
XML Android开发 数据格式
Toolbar的简单使用
Toolbar(android.support.v7.widget.Toolbar)是Android5.0之后出现的用来取代ActionBar的一个控件。
1278 0