0

試圖安裝我的應用程序使用的材質設計:複製項目與Android:

<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 

     <item name="android:colorPrimary">@color/colorPrimary</item> 
     <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="android:colorAccent">@color/colorAccent</item> 
  • 如果有android:項目被刪除 - 都沒有得到應用的顏色。
  • 如果沒有android:項目被刪除 - 應用程序崩潰:

Unable to start activity ComponentInfo{com.foo.bar/com.foo.bar.MainActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.design.widget.TabLayout

問題:

  • 爲什麼我要複製那些?
  • 我應該複製所有樣式嗎?

編輯:

清單文件是:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.foo.bar"> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".MainActivity" 
      android:screenOrientation="portrait"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 

       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 

EDIT2

activity_main.xml中:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tl_periods" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMinWidth="100dp" 
     app:tabMode="scrollable"/> 
+0

請添加您的清單文件。你的應用主題是什麼? –

+0

你在爲你的'TabLayout'設置一個自定義背景/主題嗎? –

+0

@RohitRamkumar更新了問題描述。 – Oleg

回答

3

您的應用程序的主題不是AppCompat主題的後代,而您的TabLayout來自支持包。

你要麼堅持AppCompat的主題和觀點,要麼完全是獨立的支持包,否則這些討厭的問題會上升。

+0

我想堅持API21 +,使用Material Design並儘可能遠離任何支持庫。我有什麼行動來解決這個問題? – Oleg

+0

你的意思是說'TabLayout'是以API21 +中的其他方式定義的嗎?我應該放棄'android.support.design.widget.TabLayout'的用法嗎? – Oleg

+0

您正在嘗試使用與[僅支持包](https://developer.android.com/reference/android/support/design/widget/TabLayout.html?q=tablayout)一起提供的小部件。特別是在這種情況下,你最好改變你的應用風格。 – azizbekian