Запретить щелчки без предупреждения перед запуском о том, что «несколько кликабельных элементов делят это местоположение на экране» - PullRequest
1 голос
/ 07 июля 2019

В моем приложении я вставляю / выключаю фрагменты в стеке, когда пользователь переходит на различные экраны. Представьте, что Фрагмент А - это нижний слой, пользовательский интерфейс Фрагмента Б расположен поверх этого, пользовательский интерфейс Фрагмента С - сверху Б.

Ранее у меня была проблема, что когда пользователь нажимал на фон фрагмента C (то есть не нажимал какую-либо конкретную кнопку или что-либо еще), этот каскад падал на фрагмент B и ударял по одному из кликабельных элементов и запускал это действие. Это было нехорошо, очевидно, но было легко исправить, сделав фон фрагмента C clickable="true", тогда он будет поглощать любые касания вместо того, чтобы позволить им провалиться.

Но у фрагмента C есть ListView, и в отчете перед запуском Google Play жалуется на доступность, потому что у меня есть «Несколько кликабельных элементов, которые разделяют это местоположение на экране» (т.е. ListView кликабелен, а мой фон RelativeLayout также кликабелен.

Как можно предотвратить попадание кликов на фрагменты ниже, не вызывая проблем с доступностью в отчете перед запуском?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#fff"
    android:clickable="true"
    android:focusable="true"
    >

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</RelativeLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...