使用xid属性中的值文件中的变量代替@id

时间:2015-12-01 17:46:17

标签: android android-layout android-xml

是否可以用文件中的变量替换@id/blah中的View(例如在layout_below上),然后有两个不同的文件,每个文件中有一个根据建立的风味设置@id

e.g。

<TextView
    android:id="@+id/badge"
    style="@style/badge_border"
    android:layout_below="@variable/test_name"
    tools:text="Exclusive"/>

然后是values / variables.xml

<variable name="test_name" value="@id/view1"/>

1 个答案:

答案 0 :(得分:0)

我认为这不可能,但为什么你还需要这样做呢?您可以检查代码中的风格并根据需要执行不同的操作,而不是根据风格更改ID。或者,您可以将特定于特定于风格的布局差异(例如,如果您确实要更改ID)插入到常见布局中,例如:

<include layout="@layout/include_part_of_layout"/>

然后在每个风味的res目录中都有相同的包含文件名但具有不同的内容,如:

  

flavor1 / RES /布局/ include_part_of_layout.xml

....
<TextView
android:id="@+id/badge_for_flavor1"
style="@style/badge_border"
android:layout_below="@variable/test_name"
tools:text="Exclusive"/>
...
  

flavor2 / RES /布局/ include_part_of_layout.xml

....
<TextView
android:id="@+id/badge_for_flavor2"
style="@style/badge_border"
android:layout_below="@variable/test_name"
tools:text="Exclusive"/>
...