Android Smoothscrolltoposition已停止

时间:2013-06-17 21:11:01

标签: android android-listview android-scroll


我正在寻找一种在以编程方式滚动(通过使用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,
米尔顿。

1 个答案:

答案 0 :(得分:0)

“smoothScrollToPosition”问题它滚动屏幕上可见的给定位置,而不是屏幕顶部。您需要确定是向下滚动到您的位置还是向上滚动到您的位置。这是第一点,第二点为什么你在滚动开始滚动时删除滚动监听器?当onview刚开始滚动时调用“onScroll”。你需要检查SBrollStateChanged,它有3个状态,touchScroll - >用户正在触摸列表视图并滚动,flingScroll - > listview正在滚动但用户没有触摸它,而scrollIdle - >用户没有触摸任何内容,滚动视图仍然是

您的问题没有明确说明您需要做什么,请编辑它,我会帮助您