J'ai un ListView
où j'ai défini la disposition de chaque élément dans un fichier XML séparé. Dans ce fichier, j'ai inclus un RatingBar
et un EditText
. J'ai créé par programmation 7-8 éléments dans ce ListView
. Quand je les feuillette, cela semble être assez bogué. Voici quelques exemples:Buggy ListView me rend triste
Si je mets l'accent sur le
EditText
dans la première rangée, puis faites défiler laListView
,EditTexts
au hasard d'autres lignes auront mise au point. Il semble que le prochainEditText
après que le concentré disparaisse reçoive le focus. C'est peut-être intentionnel, mais en tant qu'utilisateur, cela semble très bizarre.Si je mets le focus à un
EditText
, recevoir un clavier virtuel, tapez quelque chose, et cliquez sur le bouton « OK » sur mon clavier virtuel, leEditText
videra dès que le clavier virtuel disparaît.Parfois, lorsque je clique sur un
EditText
, recevoir un clavier virtuel et commencer à taper des lettres, les lettres disparaissent dès que je les tape.Lorsque je clique sur un
EditText
, le clavier virtuel se montre, mais leEditText
perd le focus et je dois cliquer sur leEditText
à nouveau.Même si j'ai réglé le
RatingBar
surfocusable="false"
, si je bouge ma molette de défilement, la saisie reste active.
Un de mes problèmes est tous les éléments de liste visibles se redessine quand je tape un caractère dans le clavier virtuel (et depuis le texte du EditText
est réglé sur certaines données, ce qui est vide, il est effacé. Je ne comprends pas pourquoi Android déciderait de redessiner la liste chaque fois que je tape un caractère
Voici le XML que j'utilise pour les dessiner: ce sont des bulles blanches, avec une bordure grise, et du texte, un RatingBar
et un 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>
Je viens de voter parce que j'aime le nom de votre question. Quelle est la puissance de votre appareil virtuel? – Nix
Je suis d'accord avec Nix. – Mike
Lol merci. La seule chose que j'ai faite lors de la création du périphérique virtuel (j'ai juste tapé "VD" ici et j'ai pensé que je l'épelais à la place) était de taper un nom et de sélectionner la cible (2.1). Tout le reste est par défaut. – Andrew