Android listview设置选择和滚动到位置
我对这个Android listview设置选择和滚动到位置,android,listview,android-listview,Android,Listview,Android Listview,我对这个ListView几乎失去了最后一点耐心。似乎建造它的人没有想到我的场景: 该列表在活动布局上大约有5行可见 应使用按钮滚动列表:“Down”-用于选择下一项“向上”用于选择上一个选项 所选项目必须可见。如果可能,请在视图中居中。这意味着当按下向上/向下按钮时,列表将滚动,项目将保持在原位 我已经拥有的: 带有适配器的列表,以及使用 listview.getChildAt(index).setSelected(true) 滚动列表的一种不太可靠的方法:使用: smoothScrollToP
ListView
几乎失去了最后一点耐心。似乎建造它的人没有想到我的场景:
“Down”
-用于选择下一项<代码>“向上”用于选择上一个选项李>
适配器的列表
,以及使用listview.getChildAt(index).setSelected(true)代码>
smoothScrollToPositionFromTop(mCurSel,0100)代码>
现在,有没有其他选择(就绪,开源)可以满足我的需求?我正要在没有ListView的情况下重新写入该列表。如果我理解正确,您希望滚动到正确的位置。滚动时获取正确行位置(在ListView中)的问题存在固有的计时问题。在任何时候,我们都需要确定哪些行位置是可见的。我使用了listener
setOnScrollListener
。
示例代码:
listview.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
topVisiblePosition = firstVisibleItem;
...
}
后来
listview.setSelection(topVisiblePosition);
注:
- 我没有注意到
listener方法有任何性能滞后onScroll
方法对我来说已经足够了setSelection
- 变量topVisiblePosition保存在类中,与setSelection方法一起使用
override方法包含有用的信息,如onScroll
及其总计数,至少有助于确定最后一个可见行visibleItemCount
- 使用SDK管理器获取“support v7”包
- 如果在Android Studio中工作,将v7 jar添加到项目中应该是轻而易举的事,使用eclipse就像在火上行走和同时喝酸一样(一点也不好玩)-简而言之:从sdk存储库复制以下jar: a。sdk/../extra/..v4/android-support-v4.jar添加到“libs”下的项目中, B对sdk/../extra/..v7/.RecyclerView/RecyclerView-v7-22.0.0.jar c执行同样的操作。和sdk/../extra/..v7/.cardwiew/cardwiew-v7-22.0.0.jar D将sdk/../extra/..v7/.CardView/values.xml合并到项目的values.xml中 到目前为止-只需将RecyclerView添加到您的项目中。。。啊。。这么多工作!;)我为你节省了研究的时间 注意:布局编辑器无法识别RecyclerView,因此您必须手动添加它(并且它将继续呼喊这是一个糟糕的类…等等)
- 主要活动布局:
- 也许ListView也可以,但不是很容易。。无论如何,如果使用v7支持包中的RecyclerView,这里有一个很好的帖子,告诉你如何做我想做的事情:
因此,请回答以下问题:
为了节省时间,任何人都可以尝试简单而复杂的方法,通过正确的选择来获得一个理智的列表。。。很基本,下面是我的解释:
ScrollView。滚动到(0,‘列表视图项的位置’);ListView背后的原理是,它们通过手势滚动,不需要向上或向下按钮。如果您是为非触摸屏设计的,ListView已经可以处理了。此外,ListView还可以处理选择模式(请参见属性),并可以显示选择状态(例如,使用)。正如我所写的,按钮是一项要求。。是的,这是不标准的。也许这就是为什么它是马车的原因…有趣的答案。。。滚动-然后设置选择。我明天去看看。谢谢我觉得有问题。但是嘿,listview不是为它而构建的。。。没有任何简单/合理的解决方案。有一天我想使用/尝试RecyclerView,但我还不确信它比ListView好。看,这正是问题所在。没有人告诉你最明显的选择也是最糟糕的(在这种情况下)