我想在所有TextView标签中用android:fontFamily="sans-serif-medium"
替换属性android:fontFamily="@font/roboto_medium"
。
因此,我尝试将结构替换与搜索模板一起使用:
<TextView android:fontFamily="sans-serif-medium"/>
和替换模板:
<TextView android:fontFamily="@font/roboto_medium"/>
搜索工作正常,但是替换可以清除TextView标记中的所有其他属性:
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:fontFamily="sans-serif-medium"
android:layout_height="wrap_content" />
替换为
<TextView android:fontFamily="@font/roboto_medium"/>
如何修改替换模板以仅更改fontFamily标签?
答案 0 :(得分:2)
目前,我只能建议在元变量中捕获所有额外的参数,然后在替换模板中重新使用它。
使用以下内容作为搜索模板:
<TextView android:fontFamily="sans-serif-medium" $attrs$/>
以下内容作为替换模板:
<TextView android:fontFamily="@font/roboto_medium" $attrs$/>
并单击“编辑变量”按钮,然后选择左侧的attr
,并确保其最小计数为零,最大计数为无限(通过选中2018.1.4中的复选框来完成,通过完全删除EAP中的最大计数)。
如果要保留内部元素(几乎不适用于TextView
),则可以使用相同的技巧。
主要问题是属性的顺序未保留:fontFamily
将成为第一个。也可以解决,但这是另一种技巧。