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