TabLayout define o tamanho da fonte selecionada e a espessura

https://blog.csdn.net/psjx0127/article/details/100661344 Um
projeto recente tem um requisito, ou seja, o item selecionado do título precisa estar em negrito e ampliado, pois o projeto usa TabLayout e TabLayout não tem suporte ao atributo correspondente. Eu tenho que encontrar uma maneira sozinho!
TabLayout pode personalizar a IU do item selecionado, então você pode começar a partir deste aspecto. A
solução final é adicionar um ouvinte ao TabLayout e personalizar a IU do item selecionado no ouvinte. Os arquivos de código e layout são os seguintes

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);

Os arquivos de layout usados ​​são os seguintes
 

<?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"
    />

Selecione o estilo para negrito e ampliar a fonte, escreva com estilo
 

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

Fonte padrão
 

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

 

Acho que você gosta

Origin blog.csdn.net/az44yao/article/details/113107490
Recomendado
Clasificación