我有几十个使用非常相似的布局的ViewHolder。它们都有共同的#34;包装器#34;并且唯一改变的是包装器的内容。
例如(wrapper_layout.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
... >
<LinearLayout
android:id="@+id/something"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
...
</LinearLayout>
<LinearLayout
android:id="@+id/container"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<!-- Only the content of this LinearLayout changes -->
</LinearLayout>
<LinearLayout
android:id="@+id/something_else"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
...
<TextView
android:id="@+id/message_sender"
tools:text="Jon Snow"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
我想与所有ViewHolders一起重用此布局,并仅更改R.id.container的内容。
目前我正在使用ViewStub.setLayoutResource(R.layout.xxxx),但我想知道是否有更好的方法,也许只能通过XML。