有没有人知道基于其当前选择或使用setSelection的选择集来集中ListView的方法?
我确实看到了这个没有任何答案的其他StackOverflow问题:Android ListView中心选择
谢谢,凯文
Bri*_*ley 19
首先,使用getHeight获取ListView的高度,getHeight返回ListView的高度(以像素为单位).
然后,使用相同的方法获取行的View的高度.
然后,使用setSelectionFromTop并传入ListView高度的一半减去行高度的一半.
就像是:
int h1 = mListView.getHeight();
int h2 = v.getHeight();
mListView.setSelectionFromTop(position, h1/2 - h2/2);
Run Code Online (Sandbox Code Playgroud)
或者,您可能只是从顶部为偏移量选择常量而不是数学,但我认为它可能在不同的设备上更脆弱,因为setSelectionFromTop的第二个参数看起来像素而不是设备无关的像素.
我没有测试过这段代码,但是只要你的行的高度大致相同,它就应该可以工作.
小智 3
我还没有尝试过任何这些,但根据当前的选择,您可以使用public void smoothScrollByOffset (int offset)将视图滚动到您想要的位置,以便您的选择位于视图的中间吗?
| 归档时间: |
|
| 查看次数: |
10092 次 |
| 最近记录: |