Tôi đã có cùng một vấn đề và tôi đã kiểm tra kiểu TabLayout và tôi thấy rằng kiểu mặc định của nó là các cách Widget.Design.TabLayout
triển khai khác nhau (bình thường, phong cảnh và sw600dp).
Cái chúng ta cần là cái dành cho máy tính bảng (sw600dp) có cách thực hiện như sau:
<style name="Widget.Design.TabLayout" parent="Base.Widget.Design.TabLayout">
<item name="tabGravity">center</item>
<item name="tabMode">fixed</item>
</style>
Từ kiểu này, chúng tôi sẽ sử dụng " tabGravity " (mà các giá trị có thể là "trung tâm" hoặc "điền") bằng cách sử dụng giá trị "điền".
Nhưng chúng ta cần đi sâu hơn, và sau đó chúng ta thấy rằng cái này mở rộng từ Base.Widget.Design.TabLayout
đó, việc thực hiện là:
<style name="Base.Widget.Design.TabLayout" parent="android:Widget">
<item name="tabMaxWidth">@dimen/tab_max_width</item>
<item name="tabIndicatorColor">?attr/colorAccent</item>
<item name="tabIndicatorHeight">2dp</item>
<item name="tabPaddingStart">12dp</item>
<item name="tabPaddingEnd">12dp</item>
<item name="tabBackground">?attr/selectableItemBackground</item>
<item name="tabTextAppearance">@style/TextAppearance.Design.Tab</item>
<item name="tabSelectedTextColor">?android:textColorPrimary</item>
</style>
Vì vậy, từ phong cách này, chúng ta sẽ cần ghi đè " tabMaxWidth ". Trong trường hợp của tôi, tôi đặt nó thành 0dp
, vì vậy nó không có giới hạn.
Và phong cách của tôi trông như thế này:
<style name="MyTabLayout" parent="Widget.Design.TabLayout">
<item name="tabGravity">fill</item>
<item name="tabMaxWidth">0dp</item>
</style>
Và sau đó thanh tab sẽ lấp đầy toàn bộ màn hình từ bên này sang bên kia.