4

TabLayout & ViewPagerを使用しています。 Whatsapp(カメラアイコン)のように、Tabのサイズを変更しようとしています。 3つのタブのサイズは同じですが、カメラのタブは小さくなっています。 すべての試みで、私はタブのサイズを同じにします(すべてのタブで等しい)。おかげさまで TabLayoutのタブの幅が異なる

enter image description here

+0

私たちに何をお試しください。 – Okas

+0

4つのpingアイコンがあり、3 pngの高さと幅が同じです.1つはカメラアイコンのように異なります。 –

+0

私はサイズを変えようとしますが、不可能です。 彼らは常に等しいサイズで出てくる –

答えて

8

あなたは、対応するタブののLinearLayoutの重量を下げる必要があります。

LinearLayout layout = ((LinearLayout) ((LinearLayout) tabLayout.getChildAt(0)).getChildAt(YOUR_TAB_NUMBER)); 
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) layout.getLayoutParams(); 
layoutParams.weight = YOUR_WEIGHT; // e.g. 0.5f 
layout.setLayoutParams(layoutParams); 

希望に役立ちます。

+0

それは魅力のように動作します。ありがとうございました!しかし、wrap_contentとしてタブ幅を設定する方法はありますか? – sembozdemir

+0

見つけました。私の答えを見てください。 – sembozdemir

2

@ diggerの回答が機能しています。ただし、アイコンの付いたタブのコンテンツのみをラップする場合は、ウェイトを0に、幅をLinearLayout.LayoutParams.WRAP_CONTENTに設定できます。それは私のために働いた。

fun TabLayout.setTabWidthAsWrapContent(tabPosition: Int) { 
    val layout = (this.getChildAt(0) as LinearLayout).getChildAt(tabPosition) as LinearLayout 
    val layoutParams = layout.layoutParams as LinearLayout.LayoutParams 
    layoutParams.weight = 0f 
    layoutParams.width = LinearLayout.LayoutParams.WRAP_CONTENT 
    layout.layoutParams = layoutParams 
} 
関連する問題