TabLayout设置选中字体大小粗细

https://blog.csdn.net/psjx0127/article/details/100661344
最近项目有一个需求,就是标题的选中项需要加粗放大,由于项目中使用的都是TabLayout 而TabLayout又没有相应的属性支持,只好自己想办法了!
TabLayout 可以自定义选中项的UI,所以可以从这方面入手,
最后的解决办法是为TabLayout 添加一个监听,并在监听中自定义选中项UI,代码和布局文件如下

mTabLayout.addOnTabSelectedListener(new ZTabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(ZTabLayout.Tab tab) {
                mViewPager.setCurrentItem(tab.getPosition());
                View view = tab.getCustomView();
                if (null == view) {
                    tab.setCustomView(R.layout.tab_layout_text);
                }
                TextView textView = tab.getCustomView().findViewById(android.R.id.text1);
                textView.setTextAppearance(FinancialMainActivity.this, R.style.TabLayoutTextSize);
            }

            @Override
            public void onTabUnselected(ZTabLayout.Tab tab) {
                mViewPager.setCurrentItem(tab.getPosition());
                View view = tab.getCustomView();
                if (null == view) {
                    tab.setCustomView(R.layout.tab_layout_text);
                }
                TextView textView = tab.getCustomView().findViewById(android.R.id.text1);
                textView.setTextAppearance(FinancialMainActivity.this, R.style.TabLayoutTextSize_two);
            }

            @Override
            public void onTabReselected(ZTabLayout.Tab tab) {

            }
        });	
        
		//监听一定要在setupWithViewPager方法之前添加,
        mTabLayout.setupWithViewPager(mViewPager);

用到的布局文件如下
 

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@android:id/text1"
          android:textColor="@color/color_white"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:gravity="center"
    />

选中样式加粗和放大字体,写在style中
 

 <style name="TabLayoutTextSize">
        <item name="android:textStyle">bold</item>
        <item name="android:textSize">18sp</item>
    </style>

默认字体
 

  <style name="TabLayoutTextSize_two">
        <item name="android:textSize">@dimen/font16</item>
        <item name="android:textStyle">normal</item>
    </style>

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页