Контекстный режим действий не фильтрует касания

Режим контекстного действия, наложенный поверх android.support.v7.widget.Toolbar, кажется, не фильтрует касания по всей его ширине, но позволяет касаниям «проваливаться» к (невидимым) виджетам на панели инструментов.

Моя панель инструментов содержит настраиваемый виджет (одно из объявленных преимуществ панели инструментов). У меня есть режим контекстного действия, предназначенный для наложения панели инструментов, и он полностью ее скрывает. Однако, когда я прикасаюсь к тому месту, где располагался (теперь скрытый) пользовательский виджет, прикосновение проходит к нему. Интересно, это ошибка/оплошность, но, возможно, я не уловил это правильно, или мои ожидания могут быть высокими. Я предполагаю, что касание не прошло бы, если бы что-то было на оверлее контекстного действия в месте скрытого пользовательского компонента.

Я тестирую это на Kitkat.

Вот пример кода:

MainActivity.java

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.actionbar_toolbar);
    setSupportActionBar(toolbar);

    TextView barTextView = (TextView) toolbar.findViewById(R.id.textview_bar);
    barTextView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this, "Bar TextView clicked", Toast.LENGTH_SHORT).show();
        }
    });

    mActionModeCallback = new ActionModeCallback();

    TextView mainTextView = (TextView) findViewById(R.id.textview_main);
    mainTextView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this, "Main TextView clicked", Toast.LENGTH_SHORT).show();
            if (mActionMode != null) {
                return;
            }
            getSupportActionBar().startActionMode(mActionModeCallback);
        }
    });
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:app="http://schemas.android.com/apk/res-auto"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">
    <android.support.v7.widget.Toolbar
        android:id="@+id/actionbar_toolbar"
        android:layout_height="?attr/actionBarSize"
        android:layout_width="match_parent"
        android:background="?attr/colorPrimary"
        app:theme="@style/ThemeOverlay.AppCompat.ActionBar">
        <TextView
            android:id="@+id/textview_bar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="Bar"
            android:textColor="#FF0000"/>
    </android.support.v7.widget.Toolbar>
    <TextView
        android:id="@+id/textview_main"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="SomeTextToClick"/>
</LinearLayout>

styles.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="windowActionModeOverlay">true</item>
    </style>
</resources>

Я также попытался настроить режим действия со следующей альтернативой, но поведение было таким же:

Toolbar toolbar = (Toolbar) MainActivity.this.findViewById(R.id.actionbar_toolbar);
mActionMode = toolbar.startActionMode(mActionModeCallback);

На данный момент я могу думать только о том, чтобы явно отключить пользовательский компонент всякий раз, когда включается режим контекстного действия, или каким-то образом заполнить контекстную панель действий невидимым мусором, чтобы более серьезно скрыть панель инструментов.

Несколько скриншотов ниже.

Прежде чем нажимать что-либо:

Нет режима контекстного действия перед нажатием

После нажатия «SomeTextToClick» — режим контекстного действия теперь включен, и текст на панели инструментов скрыт, но в этот момент я могу щелкнуть в центре контекстной панели действий, и щелчок обрабатывается слушателем на «Панель " TextView на панели инструментов:

Режим контекстных действий включается после нажатия SomeTextToClick

Кто-нибудь может помочь?


comment
Аналогичный вопрос был задан не так давно в поисках обходного пути: action-bar-by-making-the-tabs" title="как отключить скользящие вкладки в контекстной панели действий, создав вкладки"> stackoverflow.com/questions/29319986/ Если потребуется обходной путь, хотя?   -  person Uli    schedule 18.04.2015