Horizo​​ntalScrollView 在与另一个滚动动画一起执行时在更新之间跳转。

HorizontalScrollView jumps between updates when preforming a scroll animation in tandum with another.

我有一个 Horizo​​ntal ScrollView,我试图移动它,同时设置另一个单独的线性布局的权重。问题是当视图正在计算 H-Scrollview 的权重(或者可能只是在计算新高度时)时,它会跳到位置 512px 并停留在那里。这使得当两个动画一起播放时,scrollview 看起来像是在跳跃。我也试过只设置滚动视图的重量,但它仍然可以。

为水平滚动视图设置动画的代码:

if(currentPlace == 2){
currentPlace--;
if(currentPlace < 0){currentPlace = 0;}

DriverManagerV2.this.getActivity().runOnUiThread(new Runnable() {
    @Override
    public void run() {
        ValueAnimator ani = ValueAnimator.ofInt((int) scroller.getScrollX(), screenWidth *currentPlace);
        ani.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            public void onAnimationUpdate(ValueAnimator animation) {
                LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) lay.getLayoutParams();
                lp.weight = .7f - (.7f*animation.getAnimatedFraction());
                lay.requestLayout();

                LinearLayout.LayoutParams lp2 = (LinearLayout.LayoutParams) scroller.getLayoutParams();
                lp2.weight = 4f + (.7f*animation.getAnimatedFraction());
                scroller.requestLayout();
                scroller.setScrollX((int) animation.getAnimatedValue());
                Log.e("KICKU",""+scroller.getScrollX());
            }
        });
        ani.setDuration(1500);
        ani.start();
    }
});

}

Horizo​​ntalScrollView 的 XML:

 <HorizontalScrollView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:fillViewport="true"
    android:id="@+id/driver_manager_content"
    android:layout_weight="4">

知道如何解决这个问题吗?

想通了。这是因为我有一个聚焦的 EditText,每当高度改变时它就会跳到那个 editText。