【发布时间】:2018-11-17 21:35:24
【问题描述】:
我的 account_particle.xml 布局中有这一行
android:padding="?attrs/disc_padding"
这个 attrs.xml:
<resources>
<declare-styleable name="AccountParticle">
<attr name="apStyle" format="enum">
<enum name="header" value="0"/>
<enum name="list_item" value="1"/>
</attr>
<attr name="text_margin_start" format="reference"/>
<attr name="text_margin_end" format="reference"/>
<attr name="text_margin_right" format="reference"/>
<attr name="text_margin_left" format="reference"/>
<attr name="disc_padding" format="reference"/>
<attr name="disc_imageViewSize" format="reference"/>
</declare-styleable>
</resources>
还有这个styles.xml:
<style name="Theme.ap.header" parent="Theme.AppCompat">
<item name="disc_padding">@dimen/account_menu_header_signed_in_avatar_margin_start</item>
</style>
<style name="Theme.ap.list_item" parent="Theme.AppCompat">
<item name="disc_padding">@dimen/account_menu_account_list_item_avatar_margin_start</item>
</style>
为什么会出现这个编译错误?
error: Error: No resource found that matches the given name (at 'padding' with value '?attrs/disc_padding').
帐户粒子
【问题讨论】:
-
错字。
attr上没有s。也就是说,应该是android:padding="?attr/disc_padding"。 -
但它在 attrs.xml 上
-
这只是一个文件名。实际资源将在
R.attr类中创建。实际上,您将res/values*/文件夹下的任何文件命名为什么,或者将任何资源放在哪个文件中都没有关系;它们都根据它们的类型进行处理,例如<attr>。 -
你能把它写成答案吗?
-
当然,我可以把它放在答案中。由于您打算将其设为
attrs,因此这不仅仅是一个简单的错字。给我一分钟。谢谢!
标签: android android-layout styles custom-attributes