【问题标题】:Add ActionBar Items with a fade animation添加带有淡入淡出动画的 ActionBar 项
【发布时间】:2014-02-21 11:16:38
【问题描述】:

我有一个 ViewPager,其中一个所属的片段有自己的 ActionBar 项,因此当您滑动到该页面时,该项目出现在 ActionBar 中,滑动到另一个页面该项目消失。

我希望这与淡入/淡出动画一起发生 - 但不知道如何。

我尝试了以下方法。但它在itemView.startAnimation(fade_in); 上给了我一个 NullPointerExecption@

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.intruders_list, menu); 

        // Setup animation
        Animation fade_in = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in);
        fade_in.setInterpolator(new AccelerateInterpolator());
        fade_in.setDuration(250); 

        // Animate  
        MenuItem deleteItem = menu.findItem(R.id.action_delete);
        View itemView = deleteItem.getActionView();
        itemView.startAnimation(fade_in); // NPE HERE

        super.onCreateOptionsMenu(menu, inflater);  
}

【问题讨论】:

    标签: android android-actionbar android-animation


    【解决方案1】:

    你得到一个NullPointerException,因为你试图获得一个没有设置的动作视图。 getActionView() 在你的情况下返回 null

    要解决此问题,您需要使用deleteItem.setActionView(R.layout.layout_action_view); 设置一个。
    或者,您可以在intruders_list.xml 中的项目上使用android:actionLayout="@layout/layout_action_view" 进行设置。

    layout_action_view.xml 看起来很简单:

    <?xml version="1.0" encoding="utf-8"?>
    <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
       style="?android:attr/actionButtonStyle"
       android:id="@+id/iv_action"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:src="@android:drawable/ic_menu_rotate" />
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2013-11-08
      • 2020-12-30
      • 2014-01-20
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      相关资源
      最近更新 更多