如何停止列表视图上的滚动动画?

How can I stop the scrolling animation on a listview?

是否可以阻止 ListView 滚动?我目前有一个 ListView,顶部有一个边距,用于显示位于后面的图像视图。我的目标是在用户向上滚动时覆盖 ListView 后面的 ImageView,随着 ListView 向上滚动,它也会关闭它最终隐藏 ImageView 坐在它后面。我目前正在这样做,但我想弄清楚如何停止 ListView 上的滚动动画,直到 ListView 关闭它的边距。 ('mainItemDisplayer' 是 ListView。)

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {

            //mainItemDisplayer.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_CANCEL, 0, 0, 0));
            int scrolledOffset = mainItemDisplayer.getVerticalScrollOffset();

            if (scrolledOffset!=mainItemDisplayer.mInitialScroll) {
                //if scroll position changed
                boolean scrollUp = (scrolledOffset - mainItemDisplayer.mInitialScroll) < 0;
                mainItemDisplayer.mInitialScroll = scrolledOffset;

               if (scrollUp){
                   Log.d("Scrolling", "UP");

               } else {
                   //mainItemDisplayer.setEnabled(false);
                   //Scrolling down
                   Log.d("Scrolling", "DOWN");
                   FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mainItemDisplayer.getLayoutParams();
                   //layoutParams.setMargins(0, mainItemDisplayer.mInitialScroll, 0, 0);

                   layoutParams.height += scrolledOffset;
                   mainItemDisplayer.setLayoutParams(layoutParams);
                   //((FrameLayout.LayoutParams) mainItemDisplayer.getLayoutParams()).setMarginEnd(mainItemDisplayer.mInitialScroll);
                   //mainItemDisplayer.setLayoutParams(layoutParams);
                   return;
               }
            }
            //mainItemDisplayer.setEnabled(true);
        }

我不确定我是否理解您想要实现的目标,但听起来您只需要列表视图的两个 xml 属性:

paddingTop="<yourmargin>dp"

和(技巧!)

clipToPadding="false"