我有一个开关,我设置了一个这样的监听器:
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,但它不会调用扩展视图的动画。
有人知道我如何调用这个动画,以便它在屏幕开始时显示视图吗?