2011-09-30 5 views
5

Chciałbym, aby mój MediaController ukrywał się tylko wtedy, gdy użytkownik dotknie tylko dolnej połowy ekranu, ponieważ mam kilka przycisków na górnej części, które muszą być dostępne za pomocą jednego kliknięcia. Oznacza to, że pierwsze kliknięcie nie zostanie przechwycone przez MediaController.Android: Do czego służy AnchorView MediaControllera?

Z tego co czytałem na doc deweloperów:

... W szczególności, kontrole będzie unosić się nad widokiem określonym z setAnchorView(). Okno zniknie, jeśli pozostanie bezczynne przez trzy sekundy i pojawi się ponownie, gdy użytkownik dotknie widoku zakotwiczenia.

Moja anchor_view układ:

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

Jednak, gdy kontroler jest włączony, kiedy tylko dotykam ekran poza anchor_view, to nadal tylko ukrywa go, a nie ogień zdarzeń przyciski.

Czy można temu zapobiec?

+0

Mam również ten problem. czy kiedykolwiek znalazłeś rozwiązanie? –

Odpowiedz

4

Widok zakotwiczenia jest używany tylko przez MediaController, aby uzyskać położenie, od którego powinien zacząć rysować kontrolery. Same kontrolery są rysowane w nowym oknie o rozmiarze, które wszystkie widoki są dołączone. Po utworzeniu instancji MediaController tworzone jest nowe, ruchome okno (przy użyciu wewnętrznego interfejsu API), a detektor dotyku jest powiązany z jego widokiem dekoracyjnym, tj. Na całej jego powierzchni. Dlatego dotknięcie dowolnej części ekranu powoduje ukrycie kontrolerów multimediów i dlatego uważam, że nie ma prostego sposobu na dostosowanie tego zachowania: może wymagać przedłużenia lub ponownego wdrożenia MediaController.