Android TabLayout修改选中字体大小

简介: Android TabLayout修改选中字体大小

style的方式只能改整体的大小,修改选中字体大小就需要用到CustomView了


效果:

image.png


核心就是给TabLayout设置自定义布局,通过自定义布局拿到id,然后设置选中时的字体大小


自定义tab布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/tab_item"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:gravity="center"
              android:orientation="vertical">
    <TextView
        android:id="@+id/tab_item_time"
        android:layout_width="wrap_content"
        android:layout_height="24dp"
        android:gravity="bottom"
        android:text="22:00"
        android:textColor="@drawable/selector_text_color"
        android:textSize="12sp"/>
    <TextView
        android:id="@+id/tab_item_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="秒杀中"
        android:textColor="@drawable/selector_text_color"
        android:textSize="12sp"/>
</LinearLayout>

代码引用并设置

private void initTabView() {
        holder = null;
        for (int i = 0; i < tabs.size(); i++) {
            //获取tab
            TabLayout.Tab tab = mTabLayout.getTabAt(i);
            //给tab设置自定义布局
            tab.setCustomView(R.layout.tab_item);
            holder = new ViewHolder(tab.getCustomView());
            //填充数据
            holder.mTabItemTime.setText(String.valueOf(tabTimes.get(i)));
            holder.mTabItemName.setText(tabs.get(i));
            //默认选择第一项
            if (i == 0) {
                holder.mTabItemTime.setSelected(true);
                holder.mTabItemName.setSelected(true);
                holder.mTabItemTime.setTextSize(18);
                holder.mTabItemName.setTextSize(12);
            }
        }
        mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                holder = new ViewHolder(tab.getCustomView());
                holder.mTabItemTime.setSelected(true);
                holder.mTabItemName.setSelected(true);
                //设置选中后的字体大小
                holder.mTabItemTime.setTextSize(18);
                holder.mTabItemName.setTextSize(12);
                //关联Viewpager
                mViewPager.setCurrentItem(tab.getPosition());
            }
            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                holder = new ViewHolder(tab.getCustomView());
                holder.mTabItemTime.setSelected(false);
                holder.mTabItemName.setSelected(false);
                //恢复默认字体大小
                holder.mTabItemTime.setTextSize(12);
                holder.mTabItemName.setTextSize(12);
            }
            @Override
            public void onTabReselected(TabLayout.Tab tab) {
            }
        });
    }
    class ViewHolder {
        TextView mTabItemTime;
        TextView mTabItemName;
        ViewHolder(View tabView) {
            mTabItemTime = (TextView) tabView.findViewById(R.id.tab_item_time);
            mTabItemName = (TextView) tabView.findViewById(R.id.tab_item_name);
        }
    }

详见 > github:https://github.com/yechaoa/MaterialDesign 【TabLayoutCustomViewActivity】

目录
相关文章
|
8月前
|
Android开发
android 快速更改TabLayout的选中背景颜色。
android 快速更改TabLayout的选中背景颜色。
127 0
|
Android开发
Android Studio中修改gradle插件版本和Gradle版本
Android项目中,我们一般要设置gradle插件版本和gradle版本。 项目根目录下的build.gradle文件中,通过classpath可以指定gradle插件的版本。
|
6月前
|
Android开发
Android面试题经典之如何全局替换App的字体
在Android应用中替换字体有全局和局部方法。全局替换涉及在`Application`的`onCreate`中设置自定义字体,并创建新主题。局部替换则可在布局中通过`ResourcesCompat.getFont()`加载字体文件并应用于`TextView`。
98 2
|
7月前
|
Android开发 开发者
Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。
【6月更文挑战第26天】Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。要更改主题,首先在该文件中创建新主题,如`MyAppTheme`,覆盖所需属性。然后,在`AndroidManifest.xml`中应用主题至应用或特定Activity。运行时切换主题可通过重新设置并重启Activity实现,或使用`setTheme`和`recreate()`方法。这允许开发者定制界面并与品牌指南匹配,或提供多主题选项。
112 6
|
7月前
|
Android开发 开发者
Android UI中的Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等。要更改主题
【6月更文挑战第25天】Android UI中的Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等。要更改主题,首先在`styles.xml`中定义新主题,如`MyAppTheme`,然后在`AndroidManifest.xml`中设置`android:theme`。可应用于全局或特定Activity。运行时切换主题需重置Activity,如通过`setTheme()`和`recreate()`方法。这允许开发者定制界面以匹配品牌或用户偏好。
71 2
|
8月前
|
XML 搜索推荐 Java
Android TextView的字体设置
【5月更文挑战第13天】
332 0
|
8月前
|
Android开发
Android 开发 tablayout 字体加粗 ,简便的手法:
Android 开发 tablayout 字体加粗 ,简便的手法:
96 0
|
8月前
|
XML Java Android开发
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
711 0
|
Java Android开发
Android 中设置EditText输入框提示文本hint的字体大小
Android 中设置EditText输入框提示文本hint的字体大小
350 0
|
缓存 Android开发
Android TabLayout的使用详解
Android TabLayout的使用详解
151 0