向下滑动,向上动画仅在片段中首次起作用

时间:2018-12-13 03:44:48

标签: android animation

我已经为片段中的布局实现了slide_down和slide_up动画。我在MPAndroidChart条形图中单击即可实现该功能。问题是,这对于第一次slide_down和slide_up单击来说效果很好。对于下次点击,动画不起作用。

slide_down.xml

<scale
    android:duration="500"
    android:fromXScale="1.0"
    android:fromYScale="0.0"
    android:toXScale="1.0"
    android:toYScale="1.0" />

slide_up.xml

<scale
    android:duration="500"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:toXScale="1.0"
    android:toYScale="0.0" />

布局

<LinearLayout
    android:id="@+id/textViewLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/redPrimaryLight"
    android:orientation="horizontal"
    android:padding="@dimen/_5sdp"
    android:weightSum="3">

    <TextView
        android:id="@+id/txtSelMonth"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textColor="@color/white" />

    <TextView
        android:id="@+id/txtMotor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textColor="@color/white" />

    <TextView
        android:id="@+id/txtNonMotor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:textColor="@color/white" />

</LinearLayout>

代码

我在onCreateView内部使布局不可见

textViewLayout.setVisibility(View.GONE);

downAnimation = AnimationUtils.loadAnimation(context, R.anim.slide_down);
upAnimation = AnimationUtils.loadAnimation(context, R.anim.slide_up);

然后单击条形图。...

    gBarChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
        @Override
        public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
            textViewLayout.setVisibility(View.VISIBLE);
            textViewLayout.setAnimation(downAnimation);

        }

        @Override
        public void onNothingSelected() {
            textViewLayout.setAnimation(upAnimation);
            textViewLayout.setVisibility(View.GONE);
        }
    });

1 个答案:

答案 0 :(得分:0)

每次显示图表时,您都需要刷新图表。为此,您需要致电下一行。

chartView.invalidate();