通常,当我需要在一个屏幕中包含相同的布局时,我会将此布局包装在具有不同ID的两个不同容器中,并在这两个父对象上调用findViewById
,但我不知道是否以及如何进行我可以通过kotlin的syntethic
属性获得相同的结果。为了更清楚一点:
我处于这样的情况: fragment_xyz.xml 是这样构成的:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/include1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<include layout="@layout/item_detail" />
</FrameLayout>
<FrameLayout
android:id="@+id/include2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">
<include layout="@layout/item_detail" />
</FrameLayout>
</LinearLayout>
item_detail.xml ”的内容与以下内容相似:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
我想以通常的方式访问这些标题和说明:
import kotlinx.android.synthetic.main.item_detail.*
但是我需要区分FrameLayout include1 和FrameLayout include2
谢谢!
编辑:错别字。
答案 0 :(得分:-1)
您需要导入:
-0
然后从import kotlinx.android.synthetic.main.fragment_xyz.*
framelayout
和include1
获取标题和描述,如下所示:
include2