8
descendantFocusability
を理解するのが苦労しています。非常にとりわけafterDescendants
。誰かがdescendantFocusability = afterDescendantsについて説明できますか?
誰かが私にこれが役に立つと思う例を教えてもらえますか?
descendantFocusability
を理解するのが苦労しています。非常にとりわけafterDescendants
。誰かがdescendantFocusability = afterDescendantsについて説明できますか?
誰かが私にこれが役に立つと思う例を教えてもらえますか?
ViewGroup
とその子孫との関係を定義し、フォーカスを取得する場合はView
を探します。
次の定数のいずれかである必要があります。
+------------------------------------------------------------------------------------------+ | Constant Value Description | +------------------------------------------------------------------------------------------+ | afterDescendants 1 The ViewGroup will get focus only if | | none of its descendants want it. | +------------------------------------------------------------------------------------------+ | beforeDescendants 0 The ViewGroup will get focus before | | any of its descendants. | +------------------------------------------------------------------------------------------+ | blocksDescendants 2 The ViewGroup will block its descendants from | | receiving focus. | +------------------------------------------------------------------------------------------+
完全な例hereを確認できます。
断片である:上記のスニペット1として
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
ListView listView = getListView();
Log.d(TAG, "onItemSelected gave us " + view.toString());
Button b = (Button) view.findViewById(R.id.button);
EditText et = (EditText) view.findViewById(R.id.editor);
if (b != null || et != null) {
// Use afterDescendants to keep ListView from getting focus
listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
if(et!=null) et.requestFocus();
else if(b!=null) b.requestFocus();
} else {
if (!listView.isFocused()) {
// Use beforeDescendants so that previous selections don't re-take focus
listView.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
listView.requestFocus();
}
}
}
、afterDescendants
はEditText
又はButton
いずれかがフォーカスを要求することができるように、フォーカスを得ることからlistview
を防止するために使用されます。