Android 设计支持库 Theme.Material
Android design support library with Theme.Material
我想在我的应用程序中使用新的设计支持库,从 API 21 开始。
我想使用 Theme.Material 风格,但它只适用于 Theme.AppCompat 风格。
当我使用 Theme.Material、android return 这个错误:
error inflating class android.support.design.widget.textinputlayout"
我该如何解决?
提前致谢
Ps: 对不起我的英语不好,我是法国人。
更新:
这是我的代码
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')
}
TextInputLayout 依赖于 AppCompat 中的 resources/attributes。您需要使用 AppCompat 基本主题。
AppCompat themes 是基于 API 21+ 的 Material 主题的父级。因此,您将使用 Material 主题。
在 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 主题,
我对此感到困惑
我想在我的应用程序中使用新的设计支持库,从 API 21 开始。 我想使用 Theme.Material 风格,但它只适用于 Theme.AppCompat 风格。 当我使用 Theme.Material、android return 这个错误:
error inflating class android.support.design.widget.textinputlayout"
我该如何解决?
提前致谢
Ps: 对不起我的英语不好,我是法国人。
更新: 这是我的代码
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')
}
TextInputLayout 依赖于 AppCompat 中的 resources/attributes。您需要使用 AppCompat 基本主题。
AppCompat themes 是基于 API 21+ 的 Material 主题的父级。因此,您将使用 Material 主题。
在 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 主题,
我对此感到困惑