我正在创建自定义的LinearLayout组件,旨在模仿ListView的某些功能,用于ScrollView中,因为我不能/不应该在ScrollView中使用ListView。我们称它为CustomListView。此外,我还创建了另一个自定义LinearLayout来表示列表视图中的每个项目,我们称其为NewItemView。
无论如何,在初始化NewItemView时,我通过填充布局XML来设置它。布局XML将LinearLayout声明为其根视图,并且与simple_list_item_multiple_choice.xml等布局相似。
总体而言,主activity拥有一个CustomListView。我们在CustomListView上调用addItem(Item item)以向列表中添加新项,实际上是创建了一个新的NewItemView,并使用Item类的数据填充它。
在newListItem.initListItem(Context context)中,我使用如下方法进行展开:
这实际上是有效的!然而,我的问题在于通过 Monitor 进行检查后,每个列表项周围都有一个多余的 LinearLayout。我的理解是,这通常是一个不好的主意。有一个 LinearLayout 用于 CustomListView,然后对于每个项目,都有一个只包含一个子项(即一个 LinearLayout)的 LinearLayout!最后一个 LinearLayout 包含实际的子项。
我认为这可能与我正在创建的基于 LinearLayout 的自定义组件以及填充具有 LinearLayout 根的布局有关。
无论如何,在初始化NewItemView时,我通过填充布局XML来设置它。布局XML将LinearLayout声明为其根视图,并且与simple_list_item_multiple_choice.xml等布局相似。
总体而言,主activity拥有一个CustomListView。我们在CustomListView上调用addItem(Item item)以向列表中添加新项,实际上是创建了一个新的NewItemView,并使用Item类的数据填充它。
在newListItem.initListItem(Context context)中,我使用如下方法进行展开:
((Activity)getContext())
.getLayoutInflater()
.inflate(R.layout.list_item, this, true);
这实际上是有效的!然而,我的问题在于通过 Monitor 进行检查后,每个列表项周围都有一个多余的 LinearLayout。我的理解是,这通常是一个不好的主意。有一个 LinearLayout 用于 CustomListView,然后对于每个项目,都有一个只包含一个子项(即一个 LinearLayout)的 LinearLayout!最后一个 LinearLayout 包含实际的子项。
我认为这可能与我正在创建的基于 LinearLayout 的自定义组件以及填充具有 LinearLayout 根的布局有关。