2

ListViewは3行あるを持っています。最後の 2 行にはEditText、編集可能なフィールドがあります。以下の2つのxmlがあります。

<LinearLayout
    android:id="@+id/id_message_subject_edit"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/id_message_details_subject"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="left"
        android:layout_margin="5dp"
        android:gravity="left"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@color/BLACK"
        android:textSize="15sp" />

</LinearLayout>

何らかの理由で をクリックするとEditText、カーソルが消えてしまいますが、キーボードは表示されたままです。よくわかりませんが、両方のボックスで発生します。その点については、リスナーはいないTouchListenerか、他のリスナーはいません。ListView私が注意する必要があるの中に入れることについて何か特別なことはありますか?

編集

manifest.xml ファイルに以下を入れると:

android:windowSoftInputMode="adjustPan"

動作することがわかります...ただしListView、テキストがキーボードの下にあるとスクロールしません。そのユースケースを処理する方法はありますか?

4

1 に答える 1

1

ListView 内に配置する際に注意する必要がある特別なことはありますか?

ListViewはい、 はフォーカス イベントとクリック イベントを処理する必要があることを思い出してくださいEditText。この質問に対する回答を確認してください。

ただし、 に 3 行しかない場合は、ListViewそれを使用しても実際にはあまり得られません。ListViewビューをリサイクルするように設計されており、リストに多くのアイテムがある場合に非常に効率的です。行が数行しかない場合は、 a を使用してs (行) をScrollView追加し、イベントを自分で処理することをお勧めします (リスト項目がクリック可能な場合)。ViewonClick

于 2013-02-22T00:01:31.783 に答える