【问题标题】:Android background animation ListView/GridViewAndroid背景动画ListView/GridView
【发布时间】:2014-10-31 09:25:43
【问题描述】:

我想让 gridView(或 ListView)重复自动滚动(无需用户交互)。

我希望它在后台,用户无法滚动gridView,他在前台只有一个按钮来启动一个活动。这只是一个“演示”活动

我怎样才能使它成为可能?我不知道用什么来做,如果有一些简单的 android api 来制作它。 我应该使用动画线程还是只能使用smoothToScroll?

【问题讨论】:

    标签: android listview gridview background autoscroll


    【解决方案1】:

    使用时长

    mListView.smoothScrollToPositionFromTop(position, duration);
    

    【讨论】:

      【解决方案2】:

      您有 smoothScrollToPosition 方法,该方法将滚动到列表视图/网格视图上的某个位置

      http://developer.android.com/reference/android/widget/AbsListView.html#smoothScrollToPosition(int)

      至于在 gridview/listview 上滚动的可能性,只需实现 touchListener 并返回 true

      例如,如果你想慢慢来,你不能只创建一个 for。它会滚动得太快。您可以为此使用处理程序。创建递归函数scrollTo

      public void scrollTo(final ListView myView, final int position) {
          final Handler myHandler = new Handler();
          myHandler.postDelayed(new Runnable() {
              @Override
              public void run() {
                  myView.smoothScrollToPosition(position);
                  if(position<myView.getAdapter().getCount())
                      scrollTo(myView, position + 1);
              }
          }, 2000);
      }
      

      然后像scrollTo(myListview,0); 一样调用它一次。该函数将完成其余的工作。将 2000 更改为您要等待的秒数 *1000。

      【讨论】:

      • touchListener 好了!我不知道如何使用smoothScrollToPosition。我需要逐像素滚动吗?我需要在 asyncTask 上做吗?
      • 没有。它接收一个位置。要滚动到的项目的位置。如果您想滚动到第三项,只需致电smoothScrollToPosition(3);。你也看过我贴的链接吗?那里都有解释。
      • 我的错……我明白了!我已经这样做了: for (int i=0; i
      • 使用您的 scrollTo 方法,它似乎滚动到相同的速度(快速)。 2000这个数字似乎只是开始滚动的时间。 Siva 的答案似乎有效,持续时间缓慢滚动
      • 但是您想慢慢滚动,或者您想在一段时间后滚动到下一个项目?这是一种不同的方法。如果要缓慢滚动,则需要使用持续时间。如果想在一段时间后滚动到下一个项目,您将不得不使用处理程序。你想要什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多