我正在寻找一种在以编程方式滚动(通过使用smoothscrolltoposition)到达给定位置时被触发的方法。
我有一个活动,有一个列表视图。当用户点击按钮时,列表滚动到给定位置。我需要更改该位置的项目布局属性。
我正在使用滚动侦听器,并覆盖onScroll方法来执行此操作,但该方法最终未按文档说明执行。
顺便说一句:我正在使用API 8。
这是我的代码:
public void scrollToPosition(View view) {
this.myList.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// Here I need to be positioned in the right place, to change the row layout.
MyActivity.this.myList.setOnScrollListener(null);
}
});
this.myList.smoothScrollToPosition(this.position - 1);
}
TIA,
米尔顿。
答案 0 :(得分:0)
“smoothScrollToPosition”问题它滚动屏幕上可见的给定位置,而不是屏幕顶部。您需要确定是向下滚动到您的位置还是向上滚动到您的位置。这是第一点,第二点为什么你在滚动开始滚动时删除滚动监听器?当onview刚开始滚动时调用“onScroll”。你需要检查SBrollStateChanged,它有3个状态,touchScroll - >用户正在触摸列表视图并滚动,flingScroll - > listview正在滚动但用户没有触摸它,而scrollIdle - >用户没有触摸任何内容,滚动视图仍然是
您的问题没有明确说明您需要做什么,请编辑它,我会帮助您