5

ワンクリックでアクセスできる必要があるボタンが上部にあるため、ユーザーが画面の下半分だけに触れたときにのみ MediaController を非表示にしたいと思います。つまり、最初のクリックが MediaController によって傍受されることはありません。

私が開発者のドキュメントで読んだものから:

...具体的には、コントロールは setAnchorView() で指定されたビューの上に浮かびます。ウィンドウは 3 秒間アイドル状態のままにすると消え、ユーザーがアンカー ビューに触れると再び表示されます。

私の anchor_view レイアウト:

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

それでも、コントローラーがオンの場合、アンカービューの外側の画面に触れるたびに、それは非表示になるだけで、ボタンイベントは発生しません。

それを防ぐ方法はありますか?

4

1 に答える 1

4

アンカー ビューはMediaController、コントローラーの描画を開始する位置を取得するための参照としてのみ使用されます。コントローラー自体は、すべてのビューが接続されているウィンドウの上に浮かぶ新しいウィンドウに描画されます。のインスタンスMediaControllerが作成されると、この新しいフローティング ウィンドウが (内部 API を使用して) 構築され、タッチ リスナーがその装飾ビュー (つまり、その表面全体) に関連付けられます。これが、画面の任意の部分に触れるとメディア コントローラーが非表示になる理由であり、この動作をカスタマイズする簡単な方法がないと私が信じている理由です。拡張または再実装が必要になる場合がありますMediaController

于 2012-06-18T14:11:50.400 に答える