1. 程式人生 > >使用material design元件遇到的一些問題

使用material design元件遇到的一些問題

在專案中需要使用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>