将自定义视图应用于ActionBar后,抽屉菜单图标消失

时间:2019-03-18 20:34:18

标签: android android-actionbar navigation-drawer

在添加自定义操作栏视图之前,我有一个抽屉菜单图标,在此自定义视图中,它只是一个imageView:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/bell_icon"
        android:layout_gravity="right"
        android:layout_marginRight="@dimen/double_spacer"
        android:id="@+id/ic_notif"/>

</LinearLayout>

在将应用此自定义视图的片段中,我有以下几行:

@Override
    public void onStart() {
        super.onStart();
        ActionBar actionBar = getActivity().getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);

        LayoutInflater mInflater = LayoutInflater.from(getActivity());
        View customView = mInflater.inflate(R.layout.action_bar_custom_layout, null);

        setHasOptionsMenu(true);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM|ActionBar.DISPLAY_SHOW_HOME|ActionBar.DISPLAY_SHOW_TITLE);

        actionBar.setDisplayShowHomeEnabled(true);
        actionBar.setDisplayShowTitleEnabled(true);
        actionBar.setTitle(R.string.plan_member_services);
        actionBar.setCustomView(customView);
        actionBar.setDisplayShowCustomEnabled(true);

        ImageView img_notification = customView.findViewById(R.id.ic_notification);
        img_notif.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                System.out.println("*** icon clicked ***");
            }
        });

        if(isShowIcon){            
            img_notifi.setVisibility(View.VISIBLE);
        }else{
            img_notifi.setVisibility(View.GONE);
        }
...

使用上面的代码,我可以看到在“ AndroidMenifest.xml”中定义的操作栏图标:

<application
        android:name=".MyApp"
        android:allowBackup="true"
        android:allowClearUserData="false"
        android:fullBackupContent="@xml/backup"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/MyActionBarTheme">

,我也可以看到标题,但是抽屉菜单的菜单图标不见了!我错过了什么?

1 个答案:

答案 0 :(得分:0)

当我将这些代码而不是片段放入活动中时,发现在加载片段时出现了抽屉菜单图标。