代码之家  ›  专栏  ›  技术社区  ›  Elad Benda

错误:错误:未找到与给定名称匹配的资源(用于属性引用)

  •  1
  • Elad Benda  · 技术社区  · 6 年前

                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').
    

    帐户粒子

    2 回复  |  直到 6 年前
        1
  •  0
  •   Mike M.    6 年前

    在布局属性中引用主题属性值的正确语法为:

    prefix:attribute="?attr/themeAttribute"
    

    就是, attr 而不是 attrs

    尽管您可能已经在名为的文件中定义了该属性 attrs.xml ,文件名实际上是不相关的。在生成资源时 res/values*/ 不管文件名是什么,都会处理文件夹。

    <attr> , <color> , <string>

        2
  •  0
  •   André Sousa    6 年前

    ?attr/ ?attrs/


    但你的生活中还有另一个问题 attrs.xml declare-styleable :

    <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"/>
    

    声明可样式化

    为什么?

    声明可样式化 用于定义一组 attrs disc_padding AccountParticle

    文件参考: https://developer.android.com/training/custom-views/create-view#customattr