Android ListView scrollTo
作者:互联网
我有一个LinearLayout包含一些其他视图,其中包含一个ListView.
通过单击按钮从另一个视图加载此视图.
此按钮以某种方式指定ListView中的哪个元素需要是列表中第一个可见的元素.填充列表的元素是通过HTTP从外部服务器检索的.
问题是我可以将第N个元素作为列表中的第一个元素.
请注意,我不想将其从当前位置移动到新位置,我希望列表滚动.
我尝试过setSelected()和scrollTo(x,y)和scrollBy(x,y),但没有运气.
我也尝试过这个代码,虽然它很丑,但我只是想尝试f它工作:
ListView categoryList = (ListView)findViewById(R.id.category_list);
categoryList.post(new Runnable() {
@Override
public void run() {
Log.d(this.getClass().getName(), "CategoryActivity.scrollToIndex: " + CategoryActivity.scrollToIndex);
if(CategoryActivity.scrollToIndex>0){
ListView categoryList = (ListView)findViewById(R.id.category_list);
categoryList.setScrollContainer(true);
categoryList.scrollTo(4, CategoryActivity.scrollToIndex * 50);
categoryList.requestLayout();
}
}
});
这给了我一些成功,但ListView当时表现得很疯狂,我甚至无法描述……
任何的想法?
解决方法:
尝试将其添加到消息队列中
categoryList.post(new Runnable() {
public void run() {
categoryList.scrollTo(4, CategoryActivity.scrollToIndex * 50);
}
});
它在ScrollView(check this answer)中为我工作.
标签:android,android-listview,android-scroll 来源: https://codeday.me/bug/20190730/1580698.html