固定大小(不可滚动)ListView

时间:2013-05-01 05:47:20

标签: android android-listview

我知道之前已经讨论过这个问题,但我没有找到合适的答案。 我想要一个包含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行它可以正常工作,但随后大小固定,这让我回到原来的问题。

1 个答案:

答案 0 :(得分:2)

我假设您正在寻找

(标题,(ListView))

(标题,(ListView))

(标题,(ListView))

如果这是您要查找的内容,那么您可以使用tableView作为主要布局,并且可以通过给出固定高度来使listView不可滚动。

如何做到这一点,你需要测量每个子视图的高度及其分隔符高度的高度,并将listview的布局参数设置为其精确高度,然后listview不可滚动,但整个tableview是可滚动的。

我希望你看一下这个链接。 http://iserveandroid.blogspot.sg/2011/06/how-to-calculate-lsitviews-total.html

将布局设置为内容视图后,需要将适配器设置为listviews,然后立即将(计算出的高度)布局设置为listviews。