2011-09-30 19 views
5

Tôi muốn MediaController chỉ ẩn khi người dùng chỉ chạm nửa dưới của màn hình, vì tôi có một số nút ở phần trên cùng cần phải truy cập bằng một cú nhấp chuột. Tức là, không có cú nhấp chuột đầu tiên bị MediaController chặn lại.Android: Sử dụng AnchorView của MediaController là gì?

Từ những gì tôi đọc trên các nhà phát triển doc:

... Cụ thể, các điều khiển sẽ nổi trên chế độ xem chỉ định với setAnchorView(). Cửa sổ sẽ biến mất nếu không hoạt động trong ba giây và xuất hiện lại khi người dùng chạm vào chế độ xem neo.

bố trí anchor_view của tôi:

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

Tuy nhiên, khi điều khiển được bật, bất cứ khi nào tôi chạm vào màn hình bên ngoài anchor_view, nó vẫn chỉ có thể giấu nó, và không cháy, các sự kiện nút.

Có cách nào để ngăn chặn điều đó không?

+0

Tôi đang gặp sự cố này. bạn đã bao giờ tìm ra giải pháp chưa? –

Trả lời

4

Chế độ xem neo chỉ được sử dụng bởi MediaController chỉ làm tham chiếu để có được vị trí bắt đầu vẽ bộ điều khiển. Bản thân bộ điều khiển được vẽ trong một cửa sổ mới nổi trên cửa sổ mà tất cả các chế độ xem của bạn được gắn vào. Khi một phiên bản MediaController được tạo, cửa sổ nổi mới này được tạo (sử dụng API nội bộ) và trình nghe chạm được liên kết với chế độ xem trang trí, tức là toàn bộ bề mặt của nó. Đây là lý do tại sao chạm vào bất kỳ phần nào của màn hình để ẩn bộ điều khiển phương tiện và đây là lý do tại sao tôi tin rằng không có cách nào dễ dàng tùy chỉnh hành vi này: nó có thể yêu cầu bạn mở rộng hoặc reimplement MediaController.

Các vấn đề liên quan