Я создаю пользовательский компонент LinearLayout
. Он предназначен для имитации некоторых функций ListView
, для использования в ScrollView
, так как я не могу/не должен/не должен использовать ListView
внутри ScrollView
. Назовем это CustomListView. Кроме того, я создаю еще один пользовательский LinearLayout
для представления каждого элемента в этом псевдо-списке, назовем его NewItemView.Развертывание макета XML для пользовательского LinearLayout создает избыточное представление LinearLayout
В любом случае, при инициализации NewItemView, я настраиваю его, раздувая компоновку XML. Формат XML объявляет LinearLayout
в качестве корневого представления и не отличается от макетов, таких как simple_list_item_multiple_choice.xml
.
В целом, происходит то, что основная деятельность имеет CustomListView. Мы вызываем addItem(Item item)
на CustomListView, чтобы добавить новый элемент в список, который на самом деле создает новый NewItemView и заполняет его данными из класса Item.
Я раздувания в newListItem.initListItem(Context context)
, как так:
((Activity)getContext())
.getLayoutInflater()
.inflate(R.layout.list_item, this, true);
Это на самом деле работает! Тем не менее, проблема заключается в том, что при проверке с помощью монитора есть избыточный LinearLayout
, просто сидящий вокруг каждого элемента в списке. Я понимаю, что это вообще плохая идея. Там LinearLayout
для CustomListView, то для каждого элемента есть LinearLayout
, с одним ребенком; a LinearLayout
! Этот последний содержит настоящих детей.
Я ожидаю, что это как-то связано с тем, что я создаю настраиваемый компонент, основанный на LinearLayout, а затем раздувая макет с LinearLayout в его корне.