Android设计支持库与Theme.Material

3
我想在我的应用程序中使用API 21开始提供的新设计支持库。我想使用Theme.Material样式,但只能与Theme.AppCompat样式一起使用。当使用Theme.Material时,Android会返回以下错误:

error inflating class android.support.design.widget.textinputlayout

如何解决这个问题?谢谢。

附注:我英语不好,请见谅。

更新:以下是我的代码:

styles.xml

<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">
    <item name="android:colorPrimary">@color/primary</item>
    <item name="android:colorPrimaryDark">@color/primary_dark</item>
    <item name="android:colorAccent">@color/accent</item>
    <item name="android:colorControlNormal">@color/control_normal</item>
    <item name="android:textColorHint">@color/silver</item>
</style>

activity.xml

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="username"
        android:id="@+id/editText1" />

</android.support.design.widget.TextInputLayout>

build.gradle

dependencies {
//compile fileTree(dir: 'libs', include: ['*.jar'])

compile project(':facebook')
compile('com.twitter.sdk.android:twitter:1.1.0@aar') {
    transitive = true;
    exclude module: 'gson'
}

compile 'com.google.android.gms:play-services-plus:7.5.0'
compile 'com.google.android.gms:play-services-identity:7.5.0'
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:support-v13:22.0.0'
compile 'com.android.support:cardview-v7:22.0.0'
compile 'com.soundcloud.android:android-crop:0.9.10@aar'

compile files('libs/volley.jar')
compile files('libs/gson-2.3.1.jar')
compile files('libs/httpclient-4.3.3.jar')
compile files('libs/httpclient-cache-4.3.3.jar')
compile files('libs/httpcore-4.3.2.jar')
compile files('libs/httpmime-4.3.3.jar')
compile files('libs/commons-lang3-3.3.2.jar')
compile files('libs/hellocharts-library-1.5.5.jar')
}

到目前为止,你尝试了什么,能给我们展示一下吗? - Soham
2个回答

8

TextInputLayout依赖于AppCompat中的资源/属性。您需要使用一个AppCompat基础主题。

AppCompat主题是API 21+上基于材料的主题的父级。因此,您将使用材料主题。


谢谢你的回答。 - Louis

0

在gradle文件中添加以下行:

compile 'com.android.support:design:22.2.0'

然后在你的*.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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="10dip"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:padding="10dp">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dip"
        android:orientation="vertical"
        android:weightSum="1">

        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="4dip"
            app:hintTextAppearance="@style/textview.small">

            <EditText
                android:id="@+id/et_password"
                style="@style/textview.medim"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dip"
                android:layout_marginRight="10dip"
                android:hint="@string/Password" />
        </android.support.design.widget.TextInputLayout>


    </LinearLayout>
</LinearLayout>

更新: 如果您想使用工具栏,您应该更改为使用AppCompat主题,我对此感到困惑。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接