1

我有一个开关,我设置了一个这样的监听器:

mySwitch.setOnCheckedChangeListener(new CustomOnCheckedChangeListener(findViewById(R.id.my_view)));

CustomOnCheckedChangeListener 启动动画以显示另一个字段(R.id.my_view,默认情况下隐藏,因为我在 xml 中设置了 android:layout_height="0dp")。自定义侦听器如下所示:

public class CustomOnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener {
    private final View[] mViews;

    public CustomOnCheckedChangeListener(View... views) {
        mViews = views;
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        for (View v : mViews) {
            LinearLayout layout = (LinearLayout) v;
            if (isChecked) {
                Animation anim = expand(layout, true);
                layout.startAnimation(anim);
            } else {
                Animation anim = expand(layout, false);
                layout.startAnimation(anim);
            }
        }
    }
}

这一切都像一个魅力。我现在想做一些不同的事情。当我收到一个 id 时,我需要将开关设置为“开”以显示相应的视图。所以我按如下方式切换开关:

mySwitch.toggle();

尽管这确实将开关切换到 On,但它不会调用扩展视图的动画。

有人知道我如何调用这个动画,以便它在屏幕开始时显示视图吗?

4

0 回答 0