1. ホーム
  2. Android

アンドロイドについて:DescendantFocusability いくつかの使用感

2022-02-18 13:01:28

リストビューのアイテムはチェックボックスとテキストビューを含み、テキストビューはいくつかのキーワードでクリックイベントを追加する必要があります。問題は、アイテムが常にテキストビューのクリックイベントを取得し、イベントの配布に競合が発生することです。この問題を解決する最も複雑な方法は、リストビューをカスタマイズして、イベント配布関連のメソッドを書き換えることです。しかし、カスタムコントロールはもっと面倒だし、自信がないのではないでしょうか。ずっと探していたんです。 振り返ると、android:descendantFocusabilityが光に包まれている 赤ちゃんが葛藤に対処するのをうまく手助けしています。

以下は、descendantFocusabilityの公式説明です。

android:descendantFocusability

フォーカスを得るための View を探す際の ViewGroup とその子孫の関係を定義します。

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

このプロパティは、ビューにフォーカスが当たった場合の viewGroup とその子コントロールの関係を定義する。

この属性には3つの値があります。

  beforeDescendants: ビューグループは、そのサブクラスよりも先にフォーカスを取得します。

  afterDescendants: サブクラスがフォーカスを得る必要がないときのみ、ビューグループがフォーカスを得る。

  blocksDescendants: ビューグループはサブクラスのコントロールをオーバーライドし、フォーカスを直接取得します。

<スパン 使用方法 この属性は、ビューグループに直接ドロップされます

コードは以下の通りです。

<スパン

<ListView
                    android:descendantFocusability="blocksDescendants"
                    android:focusable="false"
                    android:divider="@drawable/leftxian1"
                    android:id="@+id/flfg_content"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                     />

テキストビューをリストビューアイテムで表示します。

<TextView
        android:focusable="true"
        android:padding="5dp"
        android:gravity="center_vertical"
        android:textColor="@color/black"
        android:id="@+id/text_law"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content" ></TextView>

<スパン この組み合わせで、赤ちゃんは危機を乗り越えることに成功したのです

このプロパティは、例えば、viewGroupのクリックイベントを設定し、子コントロールのクリックイベントを激しくオーバーライドするように直接指示するために、裏でかなり使用されています、安定した幸福。

ゲームに新しい、ミスや欠点歓迎おばさんパットがあります