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