У меня есть пользовательский 3 уровня ExpandableListView
с 2 пользовательскими ExpandableListAdapter
.Как вертикально расширить или заполнить экран с помощью специального ExpandedListView
В ParentAdapter
внутри getChildView
я создаю экземпляр CustomExpandableListView
и установкой Моя ChildAdapter
к нему так:
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
CustomExpandableListView subObjects = (CustomExpandableListView) convertView;
if (convertView == null) {
subObjects = new CustomExpandableListView(activity);
}
ChildAdapter adapter = new ChildAdapter(activity, item, subObjects);
subObjects.setAdapter(adapter);
return subObjects;
}
Некоторые скриншоты:
Это то, что я получаю, когда мои Китай регионы скрыть:
И это один, когда они разлагаются:
Так мой ExpandableListView
занимает только часть экрана (я пометил его с красными линиями), другие вещи исчезнуть, у меня есть для прокрутки, чтобы получить к нему. И мой список расширяется вертикально только тогда, когда я добавляю элементы в мой уровень 1 (Азия и Европа). Я понимаю, почему - потому что они являются элементами стандартного ExpandableListView
И я знаю, как удалить верхнее и левое поле - я установил paddings в своих макетах.
Но как я могу заставить свой CustomExpendableListView
расширяться вертикально?
Вот мой CustomExpendableListView:
public class CustomExpandableListView extends ExpandableListView {
public CustomExpandableListView(Context context) {
super(context);
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
widthMeasureSpec = MeasureSpec.makeMeasureSpec(990, MeasureSpec.AT_MOST);
heightMeasureSpec = MeasureSpec.makeMeasureSpec(1600, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
Внутри моей activity_main
макет У меня есть только один RelativeLayout
, ширина и высота в match_parent
состоянии.
Это, как я инициализировать мой CustomExpandableListView
в MainActivity:
RelativeLayout parent = (RelativeLayout) findViewById(R.id.relativeContainer);
list = new CustomExpandableListView(this);
ParentAdapter adapter = new ParentAdapter(this, objectsLvl1);
list.setAdapter(adapter);