2014-05-12 4 views
9

J'ai besoin de changer la position horizontale de la liste déroulante de Spinner. est ici la capture d'écran:Modifier la position de la liste déroulante du spinner

enter image description here

et je veux cette liste déroulante pour aller dans une ligne sous l'icône principale/texte afin qu'il regarderait bien

Comme sur la photo:

enter image description here

voici ce que je fais dans xml:

<Spinner 
    android:id="@+id/tvHeader" 
    style="@style/spinner_style" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/ver_main_donate_background_tile_long" 
    android:layout_alignTop="@+id/ver_main_donate_background_tile_long" 
    android:layout_marginTop="5dp" 
    android:layout_toRightOf="@+id/icon_main_header" 
    android:spinnerMode="dropdown" 
    android:dropDownHorizontalOffset="-15dp" 
    android:gravity="left|center_vertical" 

    android:text="@string/name_of_product" /> 

donc, comme je le suppose,

android:spinnerMode="dropdown" 
android:dropDownHorizontalOffset="-15dp" 

devrait faire l'affaire, mais comme vous le voyez sur la capture d'écran, il ne fonctionne pas

+0

Avez-vous réussi à comprendre cela? –

+0

Je ne semble pas l'obtenir ce que vous voulez changer réellement @ AnubianNoob – Elltz

+0

Le menu déroulant n'est pas aligné avec le spinner dans la première image. J'ai le même problème. Définir le décalage horizontal à négatif ne semble pas résoudre le problème, le menu déroulant ne peut pas aller plus loin à gauche. –

Répondre

1

Utilisez cette option pour faire le bouton que vous voulez

getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME); 
    getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 
    getSupportActionBar().setCustomView(R.layout.custom_actionbar); 

Et c'est la mise en page de costume

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center|right" 
    android:paddingBottom="3dp" 
    android:paddingLeft="3dp" 
    android:paddingRight="-6dp" 
    android:paddingTop="3dp" 
    android:src="@drawable/ic_launcher" /> 

<Button 
    android:id="@+id/mytext" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" 
    android:gravity="left|center" 
    android:text="wheresmyTURF" 
    android:textColor="#ffff" 
    android:textSize="26sp" 
    app:customTypeface="fonts/pompiere.ttf" /> 

par ceci vous personnalisez la barre d'action ainsi vous pouvez faire quelques changements pendant que vous avez besoin je pense ...

1

Vous pourriez juste faire le fileur sans triangle.

Tout d'abord, créez un fichier styles.xml sous res/valeurs, ouvrez-le et ajoutez ce qui suit:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<style parent="@android:style/Widget.Spinner" 
name="SpinnerAsEditText"><item 
name="android:background">@android:drawable/edit_text</item> 
</style> 
</resources> 

Ensuite, dans votre mise en page, ajoutez le Spinner comme ceci:

<Spinner style="@style/SpinnerAsEditText" anyOtherAttributeYouNeed="..."></Spinner> 

Quand vous l'utilisez comme ça, Spinner ressemblera à un EditText sans le petit triangle.

5

enter image description here

Vous pouvez observer que les éléments de la liste sont alignés légèrement à droite, du parent donc j'ai ajouté un attribut marginLeft en vue spinner

android:layout_marginLeft="20dp" 

et thats a fonctionné pour moi, au-dessous, vous pouvez voir la différence

enter image description here

+0

Que faire si je ne veux pas déplacer le disque? Est-il possible d'aligner la liste déroulante avec le côté de la fenêtre? –

+0

Je pense, il n'y a pas d'autre moyen – Abhishek

+0

J'espérais en quelque sorte une explication de cela. Une idée de pourquoi c'est impossible? –

Questions connexes