如何覆盖<include>中的子参数

时间:2016-07-17 23:35:19

标签: android xml

我想在另一个XML文件中包含以下布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/app_bg"
    android:gravity="center_horizontal">

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

    <TextView android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="@string/hello"
              android:padding="10dp" />

    ...

</LinearLayout>

我知道我可以通过在标记中指定它们来覆盖所包含布局的根视图的布局参数。例如:

<include android:id="@+id/news_title"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         layout="@layout/title"/>

我的问题是:我应该怎么做才能覆盖孩子的参数?例如。在这里,如果我想覆盖android:text="@string/hello"的{​​{1}},我该怎么办?

1 个答案:

答案 0 :(得分:0)

你不能 - 你只能覆盖include的根视图的layout_ *参数。你需要通过搜索id来做代码(假设你只做一次)。您的另一个选择是创建一个自定义View类,将包含的布局扩展到自身(可能带有合并标记以避免额外级别的视图),然后可以查看在通胀期间传递的属性集并执行它需要的内容它