J'ai un ListView
où j'ai défini la disposition de chaque élément dans un fichier XML distinct. Dans ce fichier j'ai inclus un RatingBar
et EditText
.
J'ai créé par programmation 7-8 éléments dans cette ListView
. Quand je les faire défiler, il semble être assez buggé. Voici quelques exemples:
Si j'ai mis l'accent à l'
EditText
dans la première ligne, puis faites défiler vers le bas de l'ListView
, aléatoireEditTexts
d'autres lignes ont le focus. Il me semble que le prochainEditText
après l'concentre disparaît reçoit le focus. C'est peut-être intentionnel, mais, en tant qu'utilisateur, il semble très bizarre.Si j'ai mis le focus à un
EditText
, de recevoir un clavier virtuel, tapez quelque chose, et cliquez sur le bouton "Terminé" sur mon clavier virtuel, l'EditText
se vide dès que le clavier virtuel disparaît.Parfois, lorsque je clique sur un
EditText
, de recevoir un clavier virtuel et de commencer à taper des lettres, les lettres disparaissent dès que je frappe.Quand je clique sur un
EditText
, le clavier virtuel montre elle-même, mais l'EditText
perd le focus et je dois cliquer sur l'EditText
de nouveau.Même si j'ai mis l'
RatingBar
defocusable="false"
, si je déplace la molette de défilement, il est toujours en saisit le focus.
Un de mes problèmes est tout le visible éléments de la liste de redessiner quand je tape un caractère sur le clavier virtuel (et depuis le texte de l' EditText
est fixé à certaines données, qui est vide, elle est effacée. Je ne comprends pas pourquoi Android pourrait décider de les redessiner la liste à chaque fois que je tape un caractère.
Voici le XML que j'utilise pour dessiner. Ils sont blancs, bulles, avec un gris de pensionnaire, et un texte, une RatingBar
et EditText
à l'intérieur:
<?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>