我正在开发一款Android应用,左侧幻灯片菜单中间包含一些LinearLayout
和ExpandableListview
,如此图片
ExpandableListview
的子视图包含TextView
和ListView
,ListView的可见性默认不见了。点击TextView
后,ListView
即可显示。
问题是当点击ExpandableListview
的父视图时,列表的高度也会扩展以包装它的内容。但是当点击子视图(也是TextView
)时,列表的高度不会改变,我必须向下滚动才能看到最后一项。
要在ScrollView中设置ExpandableListview的高度,我使用了以下代码:
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = listView.getPaddingTop() + listView.getPaddingBottom();
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
if(listItem instanceof SecondLevelExpandableListView)
Log.e("abc", "SecondLevelExpandableListView");
if (listItem instanceof ViewGroup) {
Log.e("abc", "ViewGroup");
listItem.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
问题的屏幕截图
请帮我解决这个问题,我需要列表总是包装它的内容。
提前致谢。
答案 0 :(得分:0)
扩展动画结束时, 叫这个:
listView.smoothScrollTo(x,y);
你可以在屏幕上看到listView.getScrollY - maxY找到y
答案 1 :(得分:0)
export DJANGO_SETTINGS_MODULE="foo.settings.development"