Как фрагменты обрабатывают прикосновения? - PullRequest
11 голосов
/ 16 марта 2011

Я играю с Android Fragments, и я нашел то, что не имело для меня большого смысла. Я использую пакет совместимости и тестирую на Nexus с 2.3.3, так как у меня еще нет Motorola Xoom.

Моя проблема: Когда я заменяю fragment другим, тот, что сзади, продолжает получать прикосновения.

Вот код для воспроизведения.

У меня есть список предметов, и когда вы нажимаете строку, новый фрагмент будет создан и показан. НО если вы дотронетесь до зеленого фрагмента, он будет получен ListFragment, увеличивая количество кнопок «назад», которые я должен сделать, чтобы вернуться к ListFragment.

Может кто-нибудь объяснить, почему?

EDIT: Как предложил CommonsWare, я удалил вставленный здесь код, поскольку открыл его как проблема в трекере проблем Android, и вы можете скачать демонстрационный проект оттуда.

1 Ответ

6 голосов
/ 27 сентября 2011

У меня была похожая проблема. У меня есть фрагмент меньшего размера поверх большего фрагмента, где вы можете увидеть большой фрагмент, торчащий из меньшего. В некоторых случаях, когда я нажимаю фрагмент сверху, он запускает обработчик события onClick для фрагмента снизу.

Чтобы этого не случилось, я установил onClickListener в родительский макет меньшего фрагмента. Это предотвращает передачу события onClick во фрагмент позади него.

LinearLayout ll= (LinearLayout) mView.findViewById(R.id.topLayout);
ll.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        //left empty on purpose to capture the onClick event. 
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...