gpt4 book ai didi

Android:ListView 条件滚动

转载 作者:行者123 更新时间:2023-11-30 03:48:52 27 4
gpt4 key购买 nike

我有一个 2 Pane 布局。左边是一个ListView,右边是一些与列表链接的内容。内容是可滚动的。如果内容向前移动,我希望列表仅在该项目尚未显示时向前移动。这可以防止列表必须在每次内容更改时更新。我还希望该列表向前显示一整页。有没有类似的东西

listView.isThisElementCurrentlyShown(int nr)

listView.moveAheadOnePage(int direction)

?

提前致谢。

最佳答案

这是 isThisElementCurrentlyShown(Element e) 的示例:

    public boolean isThisElementCurrentlyShown(Element e){
ListView lv = getListView();
int start = lv.getFirstVisiblePosition();
for(int i=start, j=lv.getLastVisiblePosition();i<=j;i++){
if(e==lv.getItemAtPosition(i)){
return true;
}
}
return false;
}

这将告诉您该元素是否可见。

对于 moveAheadOnePage,您应该能够使用 ListView 的内置函数 getFirstVisiblePosition()getLastVisiblePosition() 来计算行数在该设备上可见,然后将 ListView 提前那么多位置。像这样的伪代码(你必须写这个):

public void moveAheadOnePage(int direction){//direction: 0-up, 1-down
int numVisibleRows = getLastVisiblePosition() - getFirstVisiblePosition();
this.setSelected(currentSelection + numVisibleRows) // +/- depending on direction
}

请注意,在 ListView 中滚动时,这些都是昂贵的调用,因此您一定要明智地实现~

编辑:更新代码以包含 return false

关于Android:ListView 条件滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14467660/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com