樣式的編寫,易出的錯(cuò)誤
Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class android.support.design.widget.TabLayout
... ...
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.res.ColorStateList.getDefaultColor()' on a null object reference
根據(jù)錯(cuò)誤提示,可知,是布局中的TabLayout書寫出錯(cuò)了,在根據(jù)
后邊的提示--getDefaultColor(),可知是沒有設(shè)置默認(rèn)顏色,
因?yàn)椴季之?dāng)中沒有設(shè)置字體顏色,并且改變了默認(rèn)樣式,
在布局中給TabLayout設(shè)置默認(rèn)顏色,或者讓樣式繼承默認(rèn)樣式,
即解決錯(cuò)誤。
錯(cuò)誤寫法示例
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="46dp"
app:tabTextAppearance="@style/CustomTabLayoutTextAppearance"
/>
<style name="CustomTabLayoutTextAppearance"
<item name="android:textSize">20sp</item>
</style>
正確寫法
第一種寫法
樣式的編寫
<style name="CustomTabLayoutTextAppearance" >
//設(shè)置字體的大小
<item name="android:textSize">20sp</item>
</style>
布局的編寫
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="46dp"
app:tabIndicatorColor="@color/tab_selected_line_def"
app:tabSelectedTextColor="@color/tab_text_selected_def"
//設(shè)置后,即可改變樣式,并可不繼承默認(rèn)樣式,否則報(bào)錯(cuò)
app:tabTextColor="@color/tab_text_normal_def"
app:tabTextAppearance="@style/CustomTabLayoutTextAppearance"
/>
第二種寫法
樣式的編寫
<style name="CustomTabLayoutTextAppearance">
//設(shè)置字體的大小
<item name="android:textSize">20sp</item>
<item name="android:textColor">#0d77e9</item>
</style>
布局的編寫
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="46dp"
app:tabIndicatorColor="@color/tab_selected_line_def"
app:tabSelectedTextColor="@color/tab_text_selected_def"
app:tabTextAppearance="@style/CustomTabLayoutTextAppearance"
/>
第三種寫法
樣式的編寫
<style name="CustomTabLayoutTextAppearance"
繼承默認(rèn)的樣式 即可不設(shè)置顏色,有默認(rèn)的顏色
parent=
"TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
<item name="android:textSize">20sp</item>
</style>
布局的編寫
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="46dp"
app:tabIndicatorColor="@color/tab_selected_line_def"
app:tabSelectedTextColor="@color/tab_text_selected_def"
app:tabTextAppearance="@style/CustomTabLayoutTextAppearance"
/>