在DialogPreference中实现固定高度可滚动的ListView

4
我已经对DialogPreference进行了子类化,并使用ListView实现了文件夹选择器。在向上和向下移动文件夹树并在listview中显示文件夹时,一切工作得很好。
我的问题是,当我移动文件夹树时(由于每个文件夹中子文件夹的数量不同),对话框窗口会增大和缩小。我希望保持对话框窗口高度固定,而文件夹树被导航。
为此,我为列表视图指定了固定高度,在纵向模式下这很有效。但是,我发现当我切换到横向模式时,ListView无法滚动,唯一的原因是列表视图中的项目数少于固定高度,因此滚动未启用。这有点烦人,因为在横向模式下截断了列表,用户无法向下滚动查看其余列表项。
任何建议吗?我对使用对话框没有太多的限制(全屏演示也可以),因此,在PreferencesActivity中可以使用任何替代方案。谢谢大家提前提供的帮助, dsana123。

1
有没有可能提供一些代码?XML格式的? - Lior Ohana
2个回答

2
您可以动态设置ListView的高度。请参见如何将ListView放入ScrollView而不使其折叠?。因此,您可以通过以下方式解决问题:
  1. 设置对话框的高度
  2. 在ScrollView中添加ListView
  3. 动态设置ListView的高度
如果按照上述步骤进行操作,则可以在横向模式下滚动包含ListView的ScrollView。

0

我的最佳建议是创建一个自定义的横向布局,其固定高度与纵向不同。如果您成功实现了固定高度,请确保使用独立于显示器的像素而不是固定像素。

您应该能够将全屏作为单独的Activity工作而没有问题。ListPreference应该在PreferenceActivity中工作。我的答案比较模糊,因为没有提供显示问题的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接