1. ホーム
  2. android

[解決済み] 誰かdescendantFocusability = afterDescendantsについて説明してください。

2022-02-14 19:18:57

質問

理解するのに苦労しています descendantFocusability . 特に afterDescendants .

どなたか、この方法が役に立つ例を教えてください。

どのように解決するのですか?

の関係を定義します。 ViewGroup とその子孫を探すときに View にフォーカスを当てる。

以下の定数値のいずれかでなければならない。

+------------------------------------------------------------------------------------------+
| 定数値の説明
+------------------------------------------------------------------------------------------+
| afterDescendants 1 ViewGroupは以下の場合にのみフォーカスを取得します。
| その子孫のどれもがそれを望んでいない。                  |
+------------------------------------------------------------------------------------------+
| beforeDescendants 0 ViewGroupがフォーカスを得るのは|?
| どの子孫も                            |
+------------------------------------------------------------------------------------------+
| blocksDescendants 2 ViewGroup は、その子孫をブロックします。
| フォーカスを取得します。                                  |
+------------------------------------------------------------------------------------------+

完全な例を確認することができます ここで .

スニペットは:

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();
        }
    }

}

上記のスニペットのように afterDescendantslistview がフォーカスを得ることができないように、どちらかの EditText または Button はフォーカスを要求することができます。

備考 : 上記のリンクは壊れています。私の 要旨 コード