2014-05-12 6 views
9

Ho bisogno di modificare la posizione orizzontale della lista a discesa di Spinner. Ecco lo screenshot:cambia posizione nell'elenco a discesa spinner

enter image description here

e voglio che questo elenco a discesa per andare in una linea sotto la principale icona/testo in modo che apparirebbe bene

come sull'immagine:

enter image description here

qui è quello che faccio in 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" /> 

così, come suppongo,

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

dovrebbe fare il trucco, ma come si vede nello screenshot non funziona

+0

hai fatto a capirlo? –

+0

Non riesco a capirlo cosa vuoi cambiare in realtà @AnubianNoob – Elltz

+0

Il menu a discesa non è allineato con lo spinner nella prima immagine. Sto avendo lo stesso problema. Impostare l'offset orizzontale su negativo non sembra risolvere il problema, il menu a discesa non può spostarsi ulteriormente a sinistra. –

risposta

1

Usare questo per rendere il pulsante che si desidera

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); 

E questo è il layout 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" /> 

con questo si personalizza la barra delle azioni in modo da poter apportare alcune modifiche in base alle tue esigenze ...

1

Si potrebbe semplicemente fare la Spinner senza il triangolo.

In primo luogo, creare un file styles.xml sotto res/valori, aprirlo e aggiungere il seguente:

<?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> 

successiva, nel layout, aggiungere lo Spinner in questo modo:

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

Quando lo usi in questo modo, Spinner apparirà come un EditText senza il piccolo triangolo.

5

enter image description here

Si può osservare che le voci di elenco sono allineati leggermente a destra, dal genitore così ho aggiunto un attributo marginLeft in vista filatore

android:layout_marginLeft="20dp" 

e questo è lavorato per me, qui di seguito è possibile vedere la differenza

enter image description here

+0

Cosa succede se non voglio spostare lo spinner? C'è un modo per avere il menu a discesa allineato con il lato della finestra? –

+0

penso, non c'è altro modo – Abhishek

+0

Speravo in una spiegazione. Qualche idea sul perché sia ​​impossibile? –