2016-09-28 5 views
8

Ich versuche Attribute zu einem Spinner auf meiner Android-App und eines der Attribute in textAlignment = "right" (das Problem ist, ich habe ein Spinner, layout_width="match_parent", so dass es eine Menge a Space und ich möchte es auf der rechten Seite haben), aber dies wird nur in API 17 und höher unterstützt, während ich eine App für API 16 machen möchte - Gibt es einen Workaround?XML-Spinner-Attribute textAlignment = "right" API 16

Meine Attribute sind:

 <Spinner 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:textAlignment="gravity" 
      android:id="@+id/MainSpinner" 
      tools:listitem="@layout/support_simple_spinner_dropdown_item"/> 

Der aktuelle Linearlayout sieht wie folgt aus:

enter image description here

Und ich will es wie folgt aussehen:

enter image description here

Wo :

Linearlayout (horizontal) = enter image description here

RelativeLayout = enter image description here

Textview = enter image description here

Linearlayout (vertikal) = enter image description here

Spinner = enter image description here

Knopf = enter image description here

+0

bitte posten Sie Ihre Layout-Code – abhishesh

Antwort

3

Diese ans Arbeit für mich ...

<Spinner 
android:id="@+id/example_spinner" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:layout_gravity="right" 
android:textAlignment="right" 
android:paddingLeft="10dp" 
android:paddingRight="10dp" 
android:paddingTop="2dp" 
android:paddingBottom="2dp" /> 

ich das befolgt haben: http://nevescheng.blogspot.fr/2013/05/spinner-with-item-text-aligned-to-center.html & dies gut funktioniert ...

+0

Ich denke, der Grund, warum die oben genannten Attribute für Sie arbeiten, weil der 'android: layout_width =„wrap_content“' Linie - Minen passt das übergeordnete – Jeremy

+0

Können Sie Ihre aktuellen und erforderlichen Layouts laden screenshot ... –

+0

Fertig - Es ist ein kleiner Unterschied, mit dem ich vielleicht nur bei API 16 leben muss – Jeremy

1

Sie einen Adapter wie folgt erstellen:

SpinnerAdapter spinnerAdapter = new ArrayAdapter<String>(this, R.layout.spinner_item, new String[]{"tata", "toto", "titi"}); 
spriner.setAdapter(spinnerAdapter); 

und in Ihrem Layout (res/layout/spinner_item.xml):

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceListItemSmall" 
    android:gravity="center_vertical|end" 
    android:paddingStart="?android:attr/listPreferredItemPaddingStart" 
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" 
    android:background="?android:attr/activatedBackgroundIndicator" 
    android:minHeight="?android:attr/listPreferredItemHeightSmall" /> 
0

Heyy Jeremy, Versuchen Sie android:textDirection="rtl" Attribut in Ihrem Spinner hinzufügen. Dieses Attribut gibt dem Text eine Richtung von rechts nach links.

<Spinner 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:textAlignment="gravity" 
     android:textDirection="rtl" 
     android:id="@+id/MainSpinner" 
     tools:listitem="@layout/support_simple_spinner_dropdown_item"/>