我正在尝试创建一个行为类似于tools:context的自定义属性,即
这是我的resources.xml
<declare-styleable name="RecyclerView">
<attr name="adapter" format="string"></attr>
</declare-styleable>
Run Code Online (Sandbox Code Playgroud)
这是用法
<example.com.br.appname.RecyclerView
android:id="@+id/accounts"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="8dp"
app:adapter="example.com.br.appname.AccountAdapter" >
</example.com.br.appname.RecyclerView>
Run Code Online (Sandbox Code Playgroud)
我试过使用格式参考,但它也没有编译。
错误:(17, 22) 不允许字符串类型(在“适配器”处,值为“example.com.br.appname.AccountAdapter”)。
我不认为\xe2\x80\x99目前这是可能的。我能想到的其他类似的自定义属性,例如app:layout_behavior来自设计库,或者只是app:layoutManager来自RecyclerView所有需要完整类名的属性,而不需要您的任何要求。
最好将它们存储在strings资源文件中,并在重构类名时记得检查它。
您可以考虑提交功能请求,因为 Android Studio 在特殊情况下(tools:context、class和<view><fragment>标签、类...),但我怀疑他们会为此添加新的属性格式。