【问题标题】:Android Smoothscrolltoposition has stoppedAndroid Smoothscrolltoposition 已停止
【发布时间】:2013-06-17 21:11:01
【问题描述】:


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

【问题讨论】:

  • 哇...似乎没有人知道如何做到这一点:(尝试不成功的评论也会有所帮助!

标签: android android-listview android-scroll


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2016-12-12
    • 2014-02-09
    • 2013-12-11
    相关资源
    最近更新 更多