focusableとfocusableInTouchModeの違いは?


83

それらの実際の違いを知りたい...それぞれをいつ使用すべきか、どのように使用すべきか、そしてどのような状況でそれぞれが役立つのか?

いくつかの例を挙げて、それらを詳細に説明してください。



android-developers.blogspot.fi/2008/12/touch-mode.htmlここで、Romainは、ゲームを開発しているのでない限り、focusableInTouchModeの使用は避けるべきだと述べています
Niko

2
フォーカス可能= falseの場合-キーボードの[次へ]ボタンを押した場合でも、EditTextでさえ、このビューにフォーカスすることはできません。
Volodymyr Kulyk 2014年

回答:


77

これは、Android Developers Blogで説明されています:http//android-developers.blogspot.co.at/2008/12/touch-mode.html

次の引用はそれを明確にする必要があります:

タッチモード自体は、最後のユーザー操作がタッチスクリーンで実行されたかどうかを示すだけなので、非常に理解しやすいものです。たとえば、G1電話を使用している場合、トラックボールでウィジェットを選択すると、タッチモードが終了します。

..。

タッチモードでは、フォーカスも選択もありません。グリッド内のリストで選択されたアイテムは、ユーザーがタッチモードに入るとすぐに選択解除されます。同様に、ユーザーがタッチモードに入ると、フォーカスされたウィジェットはフォーカスされなくなります。

..。

タッチモードではフォーカスが存在しないことがわかったので、それが完全に真実ではないことを説明する必要があります。フォーカスはタッチモードで存在できますが、非常に特別な方法でタッチモードでフォーカス可能と呼びます。この特別なモードは、EditTextや、フィルタリングが有効になっている場合はListViewなどのテキスト入力を受け取るウィジェット用に作成されました。

..。

タッチモードでフォーカス可能は、コードまたはXMLから自分で設定できるプロパティです。ただし、Androidの通常の動作との一貫性が失われるため、慎重に、非常に特定の状況でのみ使用する必要があります。ゲームは、タッチモードでフォーカス可能なプロパティをうまく利用できるアプリケーションの良い例です。MapViewは、Googleマップのようにフルスクリーンで使用する場合、タッチモードでフォーカス可能を正しく使用できるもう1つの良い例です。


5
適切なSOスタイルでの良い答え。ありがとう
Joop 2015年

11

いくつかの例を挙げて、それらを詳細に説明してください

私はあなたに私自身の経験を与えます:

たくさんのImageButtonを使ったアクティビティを行うGoogleTVアプリケーションがありました。

ImageButtonを選択可能にしたかったのです。

したがって、人がマウスまたはリモコンでそれらをクリックすると、それらは選択されただけになります(私の場合は強調表示されています)。次に、ユーザーが選択したを押すImageButtonと、アクションがトリガーされます。この正確な動作はfocusableInTouchMode、XMLレイアウトを介してプロパティを有効にすることで実現されました。

私がしなければならなかったのはonClickListener、ImageButtonsと出来上がりの普通を設定することだけでした!

携帯電話でアプリケーションをチェックしていませんが、おなじみの結果が得られると思います。

編集

いつ?

私がテストしたユースケースをお話ししました:ボタンが必要な場合 onClickListenerしましたButton。最初にクリックして選択した後、2回目のクリックでアクションをトリガーする場合。

最初のクリックを使用して「フォーカス」を取得し、ボタンにズームインスケールアップアニメーションを表示しました。

どうやって?

XMLレイアウトファイルでボタンのプロパティfocusableInTouchModetrueに設定するだけです。


それらをいつ使用するか。それらがどのように役立つか
AndroidGeek 2014年

7

フォーカスはビューの状態であり、通常、フォーカスはトラックボールと十字キーで変更できます。状態に焦点を合わせると、ビューの背景が異なる場合があります。

タッチモードでフォーカス可能にすると、ユーザーがビューに触れているときにビューにフォーカスを合わせることができますEditText。この種のコンポーネントの良い例はです。

Buttonまたは任意のクリック可能なコンポーネント押された状態では、あなたが興味を持っているものは通常です。


「ボタンまたはクリック可能なコンポーネントを使用すると、代わりに押された状態に焦点を合わせる必要があります。」何?答え1の残りの部分
ataulm

3

ユーザーは、ハードウェアキーまたはボタンを使用するか、画面に触れることで、デバイスを操作できます。画面をタッチすると、デバイスがタッチモードになります。その後、ユーザーは画面上の仮想ボタンや画像などに触れることで操作できます。

デバイスがタッチモードになっているかどうかを確認するには、ViewクラスのisInTouchMode()メソッドを呼び出します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.