У меня есть приложение для Android, в котором у меня есть основной макет, в который в качестве части макета включена панель поддержки, используя:
<include layout="@layout/toolbar"
android:layout_width="match_parent"
android_layout_height="wrap_content" />
Включаемая панель инструментов:
layout / toolbar.xml
<TextView
android:id="@+id/txtViewHeading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:text="@string/main_tab_status"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textStyle="bold"
android:textSize="28sp"
android:ellipsize="end"
android:lines="1"
android:gravity="center"
android:layout_gravity="center" />
</android.support.v7.widget.Toolbar>
Затем в своей основной деятельности я раздуваю свой XML toolbar_menu в методе onCreateOptionsMenu
следующим образом:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.toolbar_menu, menu);
btnShare = menu.findItem(R.id.btnShare);
btnSelectAll = menu.findItem(R.id.btnSelectAll);
btnDelete = menu.findItem(R.id.btnDelete);
return true;
}
Однако, когда я пытаюсь использовать мой ListView
в режиме CHOICE_MODE_MULTIPLE_MODAL
, он также имеет метод onCreateActionMode
.Думая, что я сделаю то же, что и раньше, я снова раздуваю меню, используя это:
@Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
actionMode.getMenuInflater().inflate(R.menu.toolbar_menu, menu);
return true;
}
Однако это заставляет другое меню появляться над моим главным меню панели инструментов, как показано на скриншоте ниже.
Я не хочу, чтобы появилось второе меню, я хочу, чтобы оно использовало существующую панель инструментов, которая находится в моем основном макете.Как мне это сделать?
Мой Main.java (основное действие) определяется как AppCompatActivity
, где Messages.java - это фрагмент, который загружается в основное действие.