Memiliki masalah bahwa TabLayout baru menggunakan warna indikator dari nilai colorAccent
, saya memutuskan untuk menggali android.support.design.widget.TabLayout
implementasinya, menemukan bahwa tidak ada metode publik untuk menyesuaikan ini. Namun saya menemukan spesifikasi gaya TabLayout ini:
<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>
Dengan spesifikasi gaya ini, sekarang kita dapat menyesuaikan TabLayout seperti ini:
<android.support.design.widget.TabLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@id/pages_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:tabIndicatorColor="@android:color/white"
app:tabIndicatorHeight="4dp"/>
Dan masalah terselesaikan, warna dan tinggi indikator tab dapat diubah dari nilai defaultnya.
parent="@style/Base.Widget.Design.TabLayout"
Dengan pustaka dukungan desain, Anda sekarang dapat mengubahnya di xml:
Untuk mengubah warna indikator TabLayout:
Untuk mengubah ketinggian indikator TabLayout:
sumber
Karena saya tidak dapat memposting tindak lanjut untuk komentar pengembang android , berikut adalah jawaban yang diperbarui untuk siapa pun yang perlu menyetel warna indikator tab yang dipilih secara terprogram:
Demikian pula untuk tinggi badan:
Metode ini baru saja ditambahkan ke revisi 23.0.0 dari Pustaka Dukungan , itulah sebabnya jawaban Soheil Setayeshi menggunakan refleksi.
sumber
sumber
Dengan pustaka dukungan desing v23, Anda dapat menyetel warna dan tinggi secara terprogram.
Cukup gunakan untuk ketinggian:
Di sini javadoc resmi .
Gunakan saja untuk warna:
Di sini javadoc resmi .
Di sini Anda dapat menemukan infonya di Google Tracker .
sumber
Untuk mengubah warna dan ketinggian indikator secara terprogram Anda dapat menggunakan refleksi. misalnya untuk kode penggunaan warna indikator di bawah ini:
dan untuk mengubah tinggi indikator, gunakan "setSelectedIndicatorHeight" sebagai ganti "setSelectedIndicatorColor" lalu panggil sesuai ketinggian yang Anda inginkan
sumber
Indikator foto menggunakan ini:
sumber
dari xml:
dari java:
sumber
Anda dapat mengubahnya menggunakan xml
sumber
Letakkan saja baris ini di kode Anda. Jika Anda mengubah warna maka ubah nilai warna dalam tanda kurung.
sumber
Android membuatnya mudah.
Jadi, kami katakan saja
Itu akan memberi kita warna normal biru dan warna ungu terpilih.
Sekarang kami mengatur ketinggian
Dan untuk tinggi badan kami katakan
sumber