Android ListView Diviseur
J'ai ce code:
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/cashItemsList"
android:cacheColorHint="#00000000"
android:divider="@drawable/list_divider"></ListView>
où @drawable/list_divider
est:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke
android:width="1dp"
android:color="#8F8F8F"
android:dashWidth="1dp"
android:dashGap="1dp" />
</shape>
mais je ne peux pas voir tout diviseur.
- Je ne sais pas pourquoi, mais le code est manquante. ici, il est à nouveau:
- <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cashItemsList" android:cacheColorHint="#00000000" android:diviseur="@drawable/list_divider"></ListView>
- et la liste diviseur est: <forme xmlns:android="schemas.android.com/apk/res/android" android:shape="ligne"> <course android:largeur="1dp" android:color="#8F8F8F" android:dashWidth="1dp" android:dashGap="1dp" /> </figure>
- utilisez le bloc de code (le 101010 icône) pour l'insertion de codes, en particulier XML/HTML/SGML code. J'ai corrigé ton post pour le moment.
- Peut-être la raison de votre problème est dans votre ListAdapter. Juste essayer de retourner la valeur true de la carte areAllItemsEnabled(). Ou de regarder stackoverflow.com/questions/5587826/...
- La couleur devrait être: android:color="#FF8F8F8F" <-- extra FF pour l'alpha
InformationsquelleAutor oriharel | 2010-10-20
Vous devez vous connecter pour publier un commentaire.
Les gens, voici pourquoi vous devriez utiliser 1px au lieu de 1dp ou 1dip: si vous spécifiez 1dp ou 1dip, Android sera mis à l'échelle vers le bas. Sur un 120 ppp appareil, qui devient quelque chose comme 0.75 px traduit, qui est arrondi à 0. Sur certains appareils, qui se traduit par 2-3 pixels, et il paraît habituellement moche ou négligée
Pour les diviseurs de 1px est de la bonne hauteur si vous voulez un de 1 pixel et diviseur est l'une des exceptions pour les "tout devrait être de dip" de la règle. Il sera de 1 pixel sur tous les écrans. De Plus, 1px habituellement l'air mieux sur hdpi et au-dessus des écrans
"Ce n'est pas 2012 plus" edit: vous pouvez avoir à basculer vers dp/dip de départ à une certaine densité de l'écran
C'est une solution de contournement, mais fonctionne pour moi:
Créé res/drawable/divider.xml comme suit:
Et dans styles.xml pour élément de liste, j'ai ajouté les lignes suivantes:
Partie cruciale est d'inclure cette 1px réglage. Bien sûr, drawable utilise dégradé (avec 1px) et ce n'est pas la solution optimale. J'ai essayé à l'aide d'un avc, mais ne pas le faire fonctionner. (Vous ne semblez pas utiliser les styles, donc il suffit d'ajouter android:dividerHeight="1px" attribut de la ListView.
Ajouter
android:dividerHeight="1px"
et cela fonctionne:Le problème vient du fait que vous êtes absent android:dividerHeight, dont vous avez besoin, et le fait que vous essayez de spécifier une ligne de poids dans votre drawable, que vous ne pouvez pas le faire avec des séparateurs pour une raison étrange. Essentiellement pour obtenir votre exemple de travail que vous pourrait faire quelque chose comme ce qui suit:
Créer votre dessiné comme un rectangle ou une ligne d'œuvres, vous ne pouvez pas essayer de mettre toutes les dimensions, donc soit:
OU:
Puis créer un style personnalisé (juste une préférence, mais j'aime être en mesure de réutiliser les choses)
Enfin déclarer votre liste d'affichage à l'aide de ce style personnalisé:
Je suis en supposant que vous savez comment utiliser ces fragments, si non faites le moi savoir. Fondamentalement, la réponse à votre question est que vous ne pouvez pas définir le séparateur de l'épaisseur de la drawable, vous devez quitter la largeur indéfini de là et d'utiliser android:dividerHeight pour définir la place.
De la doc:
Ressemble
setDividerHeight()
doit être appelé pour que le diviseur de montrer si elle n'a pas intrinsèque hauteurVotre
@drawable/list_divide
devrait ressembler à ceci:Dans votre version, vous pouvez fournir un
android:width="1dp"
, il suffit de le changer pour unandroid:height="1dp"
et cela devrait fonctionner!De la doc:
fondamentalement, vous aurez besoin de placer un fichier nommé
list_divider.xml
dansres/drawable/
de sorte que vous pouvez accéder en tant queR.drawable.list_divider
; si vous pouvez y accéder de cette façon, vous pouvez utiliserandroid:divider="@drawable/list_divider"
dans le XML pourListView
.Certaines personnes peuvent éprouver une ligne solide. J'ai contourné ce problème en ajoutant
android:layerType="software"
à la vue du référencement de l'drawable.Android docs avertir à propos de choses dissappearing en raison de l'erreur d'arrondi... essayez peut-être de dp au lieu de px, et peut-être aussi essayer > 1 abord pour voir si elle est au tour-off problème.
voir http://developer.android.com/guide/practices/screens_support.html#testing
de la section "Images avec de 1 pixel de hauteur/largeur"
J'ai eu le même problème. Toutefois rendre la vue 1px ne semble pas fonctionner sur mon Nexus 7.
J'ai remarqué que la densité de l'écran a été de 213 qui est moins que le 240 utilisé dans xhdpi. Il était donc penser que l'appareil a été une mdpi densité.
Ma solution a été de faire en sorte que le
dimens
dossier avait undividerHeight
paramètre. Je l'ai mis à2dp
dans levalues-mdpi
dossier mais1dp
dans levalues-hdpi
etc dossiers.vous avez oublié un "r" à la fin de diviseur dans votre diviseur xml de mise en page
vous appelez la mise en page @drawable/list_divider mais votre diviseur xml nommé "list_divide"
jeu android:dividerHeight="1dp"