使用material design元件遇到的一些問題
阿新 • • 發佈:2019-01-13
在專案中需要使用materialdesign包中的tabLayout控制元件,正常在xml中加入tabLayout。
<android.support.design.widget.TabLayout
android:id="@+id/landmark_list_tablayout"
android:layout_width="match_parent"
android:layout_height="@dimen/landmark_tab_layout_height"/>
執行程式碼報錯如下:
Error inflating class android.support.design.widget.TabLayout
後來發現如果要使用material design包的控制元件,theme要使用AppCompat的主題。於是將styles中的主題改為:
<style name="FBaseAppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowTitleBackgroundStyle">@style/FTitlebarBackground</item> <item name="android:windowTitleSize">@dimen/f_titlebar_height</item> <item name="android:background">@null</item> <item name="android:windowNoTitle">false</item> </style>
執行,這次還是crash,不過剛才的問題消失了,新的錯誤是:
You cannot combine custom titles with other title features。
原來在專案中使用了自定義的titlebar:
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.f_titlebar);
使得我們自定義的titlebar和使用的主題發生衝突,最後在自定義的主題中增加false
解決問題:
<style name="FBaseAppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowTitleBackgroundStyle">@style/FTitlebarBackground</item> <item name="android:windowTitleSize">@dimen/f_titlebar_height</item> <item name="android:background">@null</item> <item name="android:windowNoTitle">false</item> </style>