如何在Style中使用app命名空间

时间:2017-08-17 07:13:38

标签: android

我在布局文件中做了类似的事情

 <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="5dp"
            android:textColorHint="@color/colorPrimary"
            app:hintTextAppearance="@color/colorPrimary">

但是我想在多个地方使用这种风格,所以我试图在style.xml文件中移动它

  <style name="FindInstituteInputTextViewStyle" >
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_marginTop">5dp</item>
    <item name="android:layout_marginBottom">5dp</item>
    <item name="android:textColorHint">@color/colorPrimary</item>
    <item name="app:hintTextAppearence">colorPrimary</item>
</style>

但现在这给了我以下例外情况。

Error:(2376, 21) No resource found that matches the given name: attr 'app:hintTextAppearence'.

我还尝试将app命名空间attr放在&lt;资源&gt;  在style.xml中标记

<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
>

但它再次对我没用。如果我犯了一些愚蠢的错误,请帮助我并对不起

2 个答案:

答案 0 :(得分:1)

<style name="FindInstituteInputTextViewStyle" >
    ... ...
    <item name="hintTextAppearence">@color/colorPrimary</item>
</style>

答案 1 :(得分:0)

您没有创建自己的标记,因此尝试使用此标记会导致出现错误。您创建的自己的样式通过引用与现有标记一起使用,不需要命名空间。即:

<TextView
    style="@style/FindInstituteInputTextViewStyle" /

请参阅文档:https://developer.android.com/guide/topics/ui/themes.html

这一行:

<item name="app:hintTextAppearence">colorPrimary</item>

似乎没有正确引用颜色,所以它甚至不应该编译。