ListView
各項目のレイアウトを個別の XML ファイルで定義した場所があります。このファイルには、RatingBar
とEditText
.
この にプログラムで 7 ~ 8 個のアイテムを作成しましたListView
。それらをスクロールすると、かなりバグがあるようです。ここではいくつかの例を示します。
最初の行の にフォーカスを設定してから
EditText
下にスクロールすると、他の行からListView
ランダムにフォーカスが移動します。EditTexts
フォーカスされたものが消えた次EditText
のものがフォーカスされるようです。おそらくこれは意図的なものですが、ユーザーとしては非常に奇妙に思えます。にフォーカスを設定し
EditText
、仮想キーボードを受け取り、何かを入力して、仮想キーボードの [完了] ボタンをクリックするとEditText
、仮想キーボードが消えるとすぐに が空になります。をクリックし
EditText
て仮想キーボードを受け取り、文字を入力し始めると、入力するとすぐに文字が消えてしまうことがあります。をクリックする
EditText
と、仮想キーボードが表示されますが、EditText
フォーカスが失われ、EditText
もう一度クリックする必要があります。を に設定しても
RatingBar
、focusable="false"
スクロール ホイールを動かすと、フォーカスが移動します。
私の問題の 1 つは、仮想キーボードに文字を入力すると、表示されているすべてのリスト項目が再描画されることです (そして、テキストEditText
が空のデータに設定されているため、クリアされます。なぜ Android が文字を入力するたびにリストを再描画することにしました。
これが、それらを描画するために使用している XML です。それらは白い泡で、灰色の境界線があり、いくつかのテキスト、 aRatingBar
とa がEditText
内側にあります。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:paddingLeft="15dip"
android:paddingRight="15dip"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="2dip"
android:background="@drawable/shape_outer">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="2dip"
android:background="@drawable/shape_inner">
<TextView
android:id="@+id/rating_category"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/dark_gray"
android:textStyle="bold"
android:layout_marginBottom="10dip" />
<RatingBar
android:id="@+id/rating_rating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="0"
android:stepSize="1"
android:focusable="false"
android:clickable="false"
/>
<EditText
android:id="@+id/rating_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_column="1"
android:padding="6dip"
android:textColor="#000000"
android:gravity="left|top"
android:lines="3"
android:hint="Comment"
android:imeOptions="actionDone" />
</LinearLayout>
</LinearLayout>
</LinearLayout>