在DialogPreference中实现固定高度可滚动列表视图

时间:2011-07-07 21:53:51

标签: android

我已经对DialogPreference进行了细分,并使用ListView实现了一个文件夹选择器。当在文件夹树中上下移动并在列表视图中显示文件夹时,一切都运行良好。

我的问题是,当我在文件夹树中上下移动时,对话框窗口会增大和缩小(由于每个文件夹中的子文件夹数量不同)。

我希望在导航文件夹树时保持对话窗口的固定高度

作为一个解决方案,我为列表视图指定了一个固定的高度,这在纵向模式下运行良好,但是我注意到当我切换到横向模式时,listview不会滚动,我能想出的唯一原因是列表视图中的项目数小于固定高度,因此未启用滚动。这有点令人痛苦,因为它在横向模式下截断列表,用户无法向下滚动以查看列表项的其余部分。

有没有人有任何建议?我并不是太习惯使用对话框(全屏演示也可以),所以在PreferencesActivity中可以使用的任何替代方案都可以。

提前致谢, dsana123。

2 个答案:

答案 0 :(得分:2)

您可以动态设置列表视图的高度。 看到 How can I put a ListView into a ScrollView without it collapsing?

所以,你可以解决这个问题。

  1. 设置对话框的高度
  2. 在scrollview中添加listview
  3. 动态设置listview的高度。
  4. 如果您按照上述步骤操作,则可以在横向模式下滚动包含listview的滚动视图。

答案 1 :(得分:0)

我最好的建议是,使用与肖像不同的固定高度创建自定义横向布局。如果您使用固定高度,请确保使用与显示无关的像素而不是固定像素。

您应该可以将全屏工作作为单独的活动而不会出现问题。 ListPreference应该在PreferenceActivity中工作。我的回答很模糊,因为没有提供显示问题的代码。