我知道之前已经讨论过这个问题,但我没有找到合适的答案。 我想要一个包含3行和2列的表格。左栏是标题,右栏是项目列表。
因此我有3个列表,一个在另一个之下,我想让整个屏幕可滚动(不是每个列表都可单独滚动)。
解决方案是使用ScrollView
作为主要组件,然后使用TableView
,然后使用表格右侧列中的ListView
。问题是ListView
是一个可滚动的组件,不能在ScrollView
内工作。
我的问题 - 是否有任何组件,无论是Android API还是第三方的一部分,具有ListView
功能但是固定大小?我想享受适配器功能和onItemClick()
功能(它给我点击项目的位置)。
由于
编辑:我尝试了手动设置ListView
的高度的建议,结果是ListView
应该根据需要确实扩展的区域,但列表元素不是显示。
我使用了以下代码:
ListView lv = (ListView)view.findViewById(R.id.list);
lv.setAdapter(adapter);
LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(lv.getLayoutParams());
lParams.height = calculateHeight(lv);
lv.setLayoutParams(lParams);
没有最后3行它可以正常工作,但随后大小固定,这让我回到原来的问题。
答案 0 :(得分:2)
我假设您正在寻找
(标题,(ListView))
(标题,(ListView))
(标题,(ListView))
如果这是您要查找的内容,那么您可以使用tableView作为主要布局,并且可以通过给出固定高度来使listView不可滚动。
如何做到这一点,你需要测量每个子视图的高度及其分隔符高度的高度,并将listview的布局参数设置为其精确高度,然后listview不可滚动,但整个tableview是可滚动的。
我希望你看一下这个链接。 http://iserveandroid.blogspot.sg/2011/06/how-to-calculate-lsitviews-total.html
将布局设置为内容视图后,需要将适配器设置为listviews,然后立即将(计算出的高度)布局设置为listviews。