我有一个 FragmentActivity,在片段中,我想为 2 个视图之间的过渡设置动画(基本上是 2 个线性布局,一次只能看到一个)。
public void showError() {
if (getActivity() == null) return;
if (mErrorView.getVisibility() == View.VISIBLE) return;
if (mListView.getVisibility() == View.VISIBLE) {
mListView.startAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_out));
}
if (mSpinnerView.getVisibility() == View.VISIBLE) {
mSpinnerView.startAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_out));
}
mErrorView.startAnimation(AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in));
mListView.setVisibility(View.GONE);
mErrorView.setVisibility(View.VISIBLE);
mSpinnerView.setVisibility(View.GONE);
}
它工作正常,但我从 getActivity() 上具有 NPE 的用户那里收到了很多崩溃报告。因此,即使我在进入之前检查非空,我也会进入它变为空的状态(可能是因为动画是异步的?)。
我觉得我做的动画不正确,有没有更好的方法来防止所有 NPE 困扰我的用户?