最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】Android中EditText的style定义中parent的语法(写法)

Android crifan 4240浏览 0评论

【背景】

想要搞懂,android中style中定义时,对于parent的写法到底是如何写的。

 

【折腾过程】

1.搜:

android style parent

参考:

android开发style详解 – yimigao@126的日志 – 网易博客

android style(样式)和theme(主题)设置 – 独自等待 – 博客频道 – CSDN.NET

2.之前错误写法:

写成了:

xxx

的形式:

    <style name="Variable">
        <item name="android:textSize">14sp</item>
        <item name="android:textStyle">normal</item>
    </style>
    
    <style name="Variable.Label" parent="Variable">
        <item name="android:textColor">@color/VariableLabelColor</item>
    </style>
    
    <style name="Variable.Value" parent="Variable">
    </style>

    <style name="Variable.Value.NonEditable" parent="Variable.Value">
        <item name="android:background">@color/NonEditableBackgoundColor</item>
    </style>

应该去加上@style

变成:

@style/xxx

 

3.也不能写成@style/xxx_yyy的形式:

    <style name="Variable">
        <item name="android:textSize">14sp</item>
        <item name="android:textStyle">normal</item>
    </style>
    
    <style name="Variable.Label" parent="@style/Variable">
        <item name="android:textColor">@color/VariableLabelColor</item>
    </style>
    
    <style name="Variable.Value" parent="@style/Variable">
    </style>

    <style name="Variable.Value.NonEditable" parent="@style/Variable_Value">
        <item name="android:background">@color/NonEditableBackgoundColor</item>
    </style>

否则会出错:

error: Error retrieving parent for item: No resource found that matches the given name ‘@style/Variable_Value’.

Error retrieving parent for item No resource found that matches the given name style Variable_Value

 

应该写成:

@style/xxx.yyy

的形式:

    <style name="Variable">
        <item name="android:textSize">14sp</item>
        <item name="android:textStyle">normal</item>
    </style>
    
    <style name="Variable.Label" parent="@style/Variable">
        <item name="android:textColor">@color/VariableLabelColor</item>
    </style>
    
    <style name="Variable.Value" parent="@style/Variable">
    </style>

    <style name="Variable.Value.NonEditable" parent="@style/Variable.Value">
        <item name="android:background">@color/NonEditableBackgoundColor</item>
    </style>

 

【总结】

至此,才算基本明白:

的确是:

先定义一个style:

    <style name="Variable">
        <item name="android:textSize">14sp</item>
        <item name="android:textStyle">normal</item>
    </style>

然后后续在别的子的style中用parent引用,写法是:

@style/xxx

其中xxx是原先的style的名字。

    <style name="Variable.Label" parent="@style/Variable">
        <item name="android:textColor">@color/VariableLabelColor</item>
    </style>
    
    <style name="Variable.Value" parent="@style/Variable">
    </style>

    <style name="Variable.Value.NonEditable" parent="@style/Variable.Value">
        <item name="android:background">@color/NonEditableBackgoundColor</item>
    </style>

即可。

转载请注明:在路上 » 【已解决】Android中EditText的style定义中parent的语法(写法)

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.165 seconds, using 22.13MB memory