Spinner avec multi-ligne les articles les chevauchements élément sélectionné affichage sur Froyo
Je suis en train de créer des Toupies qui ressemblent le même sur toutes les versions d'Android retour à Froyo. À cette fin, je suis en utilisant HoloEverywhere. Certains de la spinner le texte d'un élément est plus d'une ligne, et je voudrais le retour à la ligne.
À l'aide de la mise en page par défaut, android.R.layout.simple_spinner_dropdown_item
, ou HoloEverywhere, la baisse-dans le remplacement pour elle, ellipsizes le texte au lieu de l'emballage.
Prendre le HoloEverywhere de mise en page comme point de départ pour une mise en page personnalisée avec singleLine
ensemble de false
, ellipsize
ensemble de none
, et layout_height
ensemble de wrap_content
n'aide pas, le texte est toujours coupée.
Je peut obtenir le texte pour envelopper correctement dans la liste déroulante en enveloppant la TextView
dans un LinearLayout
, mais sur Froyo appareils, cette bousille l'affichage de la sélectionné élément:
Cette méthode fonctionne très bien sur les appareils récents. La liste déroulante de l'élément de mises en page sont très bien sur tous les appareils. Mais Froyo cette bizarre de texte qui se chevauchent lorsque j'utilise un custom déroulant en page de l'élément. Chaque sélection se fait tout simplement empilés sur le dessus de la dernière.
Cette question:
Spinner n'est pas de placer du texte -- est-ce un Android bug? sur habillage du texte dans les Toupies suggère que la seule façon de le faire est de recréer le style à partir de zéro, sans hériter, mais ça a l'air fou et sujettes à des problèmes.
my_simple_list_item_1.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/android:text1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:ellipsize="marquee"
android:layout_gravity="center_vertical"
android:singleLine="false"/>
</LinearLayout>
Java:
import org.holoeverywhere.widget.Spinner;
spinner1.setAdapter(ArrayAdapter.createFromResource(this,
R.array.array_of_strings, R.layout.my_simple_list_item_1));
Aussi, avez-vous essayé de simplement donner de la mise en page d'un arrière-plan de sorte que même si c'est chevauchement, vous ne serez pas en mesure de voir ce qui est en dessous?
Hé, il n'y bladiblah, merci pour votre réponse. Je ne crois pas que je suis en train de le style sélectionné de manière explicite. Cependant, juste pour vérifier ce qui se passait, j'ai fait de lui donner un arrière-plan. J'espérais vraiment que ce serait le travail, mais malheureusement, c'était de l'empilement de la mauvaise façon. Si j'ai mis un fond sur le textview, je n'en ai jamais l'occasion de voir le premier élément sélectionnable dans la casserole(ou le premier élément du tableau). Il semble quand il est d'empiler de nouvelles choses allait ci-dessous les vieux trucs, l'ajout d'un arrière-plan seulement permettez-moi de voir que la première sélection.
Est-il possible où je peux définir explicitement l'élément de liste sélectionné?
OriginalL'auteur Michael Alan Huff | 2013-04-02
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution. Le texte a été habillage comme les toupies affichage initial ne pouvait gérer textviews, et j'avais trouvé une autre solution de recommander l'utilisation d'un linéaire de mise en page. De ce fait la liste déroulante de la casserole de l'air correct. Comme il s'avère cartes disposent d'une ressource appelée setDropDownViewResource() qui permet de définir une vision différente de la liste déroulante de ce qui est affiché dans la réglette de sélection.
dans cet exemple, le simple_list_item est la vue par défaut fourni par android et mY_simple_list_item est
Maintenant, le texte passe à l'intérieur de la liste déroulante vue de la spinner ET dans les fileuses affiche de sélection.
OriginalL'auteur Michael Alan Huff
Dirait que vous êtes la poussée vers le haut. Ma conjecture est, votre client ne sera jamais en mesure d'obtenir 100% fiable et des résultats cohérents avec le texte justifié.
Voir:
Spinner n'est pas de placer du texte -- est-ce un Android bug?
OriginalL'auteur Thomas W