Как фрагменты обрабатывают штрихи?

Я играю с android Fragments, и я нашел то, что не имело для меня большого смысла. Я использую пакет совместимости и тестирование на одном из них с 2.3.3, так как у меня еще нет motorola xoom.

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

Здесь код для воспроизведения.

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

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

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

Ответ 1

У меня была аналогичная проблема. У меня есть фрагмент меньшего размера поверх более крупного фрагмента, где вы можете увидеть более крупный фрагмент, торчащий из меньшего. В некоторых случаях, когда я нажимаю фрагмент сверху, он запускает обработчик события 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. 
    }
});