web-dev-qa-db-fra.com

Comment puis-je définir la hauteur des onglets dans Android un TabLayout?

J'ai ce TabLayout dans Android et je voulais que les onglets soient un peu plus hauts que ceux par défaut (48dp)

    <Android.support.design.widget.TabLayout
            Android:id="@+id/contentTabs"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            style="@style/Theme.Zhaw.TabLayout"
            app:tabMode="fixed"
            app:tabGravity="fill"/>

Voici le style Theme.Zhaw.TabLayout:

<style name="Theme.Zhaw.TabLayout" parent="Widget.Design.TabLayout">
    <item name="tabIndicatorColor">@color/text_white</item>
    <item name="tabIndicatorHeight">4dp</item>
    <item name="tabPaddingStart">6dp</item>
    <item name="tabPaddingEnd">6dp</item>
    <item name="tabBackground">@color/colorPrimary</item>
    <item name="tabTextAppearance">@style/Theme.Zhaw.TabLayoutText</item>
    <item name="tabSelectedTextColor">@color/text_white</item>
</style>

tabIndicatorHeight peut définir la hauteur du petit indicateur (onglet actif) dans l'onglet. mais comment pouvons-nous définir la hauteur de l'onglet lui-même?

5
Suisse

définir un layout_height dans dps au lieu de wrap_content, cela peut différer selon la taille de l'affichage, mais si vous voulez définir une hauteur de manière dynamique 

getApplication.getResources().getDisplayMetrics()

obtenir votre hauteur actuelle et calculer la hauteur en fonction de celle 

5
Sajidh Zahir

changez simplement layout_height de wrap_content à ce que vous voulez que ce soit

  <Android.support.design.widget.TabLayout
            Android:id="@+id/contentTabs"
            Android:layout_width="match_parent"
            Android:layout_height="Your Value"
            style="@style/Theme.Zhaw.TabLayout"
            app:tabMode="fixed"
            app:tabGravity="fill"/>
5
ArashSM79

J'utilise le code suivant pour définir la hauteur de TabLayout. J'espère que cela vous aide:

//Get tablayout
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
//Get the layout params that will allow you to resize the tablayout
ViewGroup.LayoutParams params = tabLayout.getLayoutParams();
//Change the height in 'Pixels'
params.height = 100;
tabLayout.setLayoutParams(params);
1
Mahyar