Android: для чего нужен AnchorView от MediaController? - PullRequest
5 голосов
/ 30 сентября 2011

Я бы хотел, чтобы мой MediaController скрывался только тогда, когда пользователь касается только нижней половины экрана, потому что у меня есть несколько кнопок в верхней части, которые должны быть доступны одним щелчком мыши. То есть MediaController не будет перехватывать первый щелчок.

Из того, что я прочитал на doc разработчиков:

... В частности, элементы управления будет плавать над видом, указанным с помощью setAnchorView (). Окно исчезнет, ​​если не используется в течение трех секунд, и снова появится, когда пользователь касается якорного вида.

Мой макет anchor_view:

<View android:id="@+id/player_control" 
    android:layout_width="wrap_content"
    android:layout_height="100dip"
    android:layout_alignParentBottom="true">
</View >    

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

Есть ли способ предотвратить это?

1 Ответ

4 голосов
/ 18 июня 2012

Якорное представление используется MediaController только как ссылка, чтобы получить позицию, с которой он должен начать рисовать контроллеры.Сами контроллеры отображаются в новом окне , плавающем над окном, к которому прикреплены все ваши виды.Когда создается экземпляр MediaController, создается это новое плавающее окно (с использованием внутреннего API), и слушатель касания связывается с его видом декора, то есть со всей его поверхностью.Вот почему прикосновение к любой части экрана приводит к сокрытию медиа-контроллеров, и поэтому я считаю, что нет простого способа настроить это поведение: для этого может потребоваться расширение или переопределение MediaController.

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