Wie kann ich den Spinner-Stil für Android 4.x reparieren, der oben auf der Toolbar platziert ist?

Lesezeit: 14 Minuten

Benutzer-Avatar
Damian Petla

Entsprechend Android-DokumentationDer Material Design-Stil wird für das Spinner-Widget unterstützt.

Also habe ich beschlossen, es in meiner App zu verwenden und es oben auf der Symbolleiste zu platzieren.

layout/activity_base.xml

<android.support.v7.widget.Toolbar
    android:id="@+id/my_awesome_toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="5dp"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
 </android.support.v7.widget.Toolbar>

Aktivitätsthema

<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/omni_primary_color</item>
    <item name="colorPrimaryDark">@color/omni_primary_color_dark</item>
    <item name="colorAccent">@color/omni_accent_color</item>
</style>

BaseActivity.java

public class BaseActivity extends ActionBarActivity {

    @InjectView(R.id.my_awesome_toolbar)
    Toolbar mToolbar;

    @InjectView(R.id.spinner)
    Spinner spinner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base);
        ButterKnife.inject(this);
        //setup toolbar
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        mToolbar.setNavigationIcon(R.drawable.ic_action_navigation_menu);
          
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(mToolbar.getContext(),
                R.array.planets_array, R.layout.support_simple_spinner_dropdown_item);
        adapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
    }
}

Auf Lollipop sehen Spinner und Dropdown gut aus, obwohl die Dropdown-Hintergrundfarbe schwarz ist, verglichen mit dem Menü-Dropdown, das weiß ist. Ich vermute, dass app:popupTheme="@style/ThemeOverlay.AppCompat.Light" wird nicht an den Spinner weitergegeben.

Android 5.0

Geben Sie hier die Bildbeschreibung ein
Geben Sie hier die Bildbeschreibung ein

Das große Problem besteht nun bei Android 4.x, bei dem die Dropdown-Hintergrundfarbe weiß ist (Popup-Design verbreitet?) Und das Symbol neben dem Spinner schwarz ist.

Android 4.4

Geben Sie hier die Bildbeschreibung ein

Wie kann ich es im XML richtig einstellen oder im Code implementieren, damit es sowohl auf Android 5 als auch auf 4 funktioniert? Idealerweise hätte ich gerne beide Looks wie auf Android 5, aber mit weißem Spinner-Dropdown (wie Drop-down-Menü für Einstellungen).

Aktualisieren

Ich habe diese Einstellungseigenschaft bemerkt colorControlNormal wirkt sich auf das Filtersymbol des Spinners aus. Wenn jemand herausfindet, wie man das für Spinner nutzt (ohne andere Inhaltssteuerelemente zu ändern), dann hätte ich meine Lösung, indem ich diese Erkenntnis mit @Sven antworte.

Aktualisieren

Die folgende Änderung behebt das Problem mit Spinner-Text und Popup-Farbe. Das einzige Problem für die endgültige Lösung ist also das Filtersymbol.

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getSupportActionBar().getThemedContext(),
                R.array.planets_array, R.layout.support_simple_spinner_dropdown_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

Aktualisieren

Ich habe festgestellt, dass das Filtersymbol tatsächlich ein Teil von ist android:background für den Spinner angegeben und transparent. Das Bereitstellen eines eigenen Hintergrunds würde das Problem beheben, z

<item name="android:background">?android:selectableItemBackground</item>

Geheimnis gelüftet!

Das letzte Puzzleteil ist das Popup auf Android 5 mit schwarzem Hintergrund und weißem Text, aber ich denke, es kann mit einem benutzerdefinierten Layout gelöst werden. Wenn niemand eine vollständige Antwort liefert, werde ich es selbst tun und als akzeptiert markieren.

  • versuchen zu benutzen getSupportActionBar().getThemedContext() stattdessen mToolbar.getContext()

    – Selvin

    5. November 2014 um 11:20 Uhr

  • @Selvin Das habe ich schon probiert. Es sieht genau gleich aus

    – Damian Petla

    5. November 2014 um 11:22 Uhr

  • @Loop Ich habe das gleiche Problem, hast du jemals eine Lösung gefunden?

    – Nathan Walters

    13. November 2014 um 22:42 Uhr

  • Für das Spinner-Symbol kann dies hilfreich sein.

    – Schildkröte

    14. November 2014 um 9:17 Uhr

  • @Loop Ich hatte mit der gleichen Sache zu kämpfen und fand heraus, dass die Aktualisierung von AppCompat von 21.0.0 auf 21.0.2 die Farbe des Spinner-Filtersymbols korrigierte. Ich habe andere Probleme gelöst, indem ich benutzerdefinierte Layouts verwendet habe.

    – Andrej Makarow

    8. Dezember 2014 um 8:37 Uhr

Benutzer-Avatar
Dan

Ich weiß, das ist spät, aber ich bin auf diese Frage gestoßen, als ich selbst auf dieses Problem gestoßen bin und eine Lösung in gefunden habe BrowseSessionsActivity des Google I/O 2014-App und angepasst.

Grundrisse

toolbar_spinner.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Spinner
        android:id="@+id/toolbar_spinner"
        style="@style/Widget.MyApp.HeaderBar.Spinner"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"/>

</LinearLayout>

toolbar_spinner_item_actionbar.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@android:id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawablePadding="8dp"
        android:drawableRight="@drawable/spinner_triangle"
        android:fontFamily="sans-serif"
        android:paddingLeft="16dp"
        android:paddingRight="4dp"
        android:textColor="#ffffffff"
        android:textSize="18dp"
        android:textStyle="bold"/>

</LinearLayout>

Das spinner_triangle ausziehbar zu finden hier.

toolbar_spinner_item_dropdown.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@android:id/text1"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:drawablePadding="8dp"
        android:gravity="center_vertical|start"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:textColor="#ff333333"
        android:textSize="16sp"/>
        
</LinearLayout>

Stile

toolbar_spinner.xml verwendet den folgenden Stil.

<style name="Widget.MyApp.HeaderBar.Spinner" parent="Widget.AppCompat.Light.Spinner.DropDown.ActionBar">
        <item name="android:background">?android:selectableItemBackground</item>
        <item name="android:dropDownSelector">?android:selectableItemBackground</item>
        <item name="android:divider">@null</item>
        <item name="android:overlapAnchor">true</item>
</style>

Adapter

Dieser Adapter muss an Ihre eigenen Bedürfnisse angepasst werden. getTitle() gibt den Text für jedes im Spinner angezeigte Element zurück.

private class YourObjectSpinnerAdapter extends BaseAdapter {
    private List<YourObject> mItems = new ArrayList<>();

    public void clear() {
        mItems.clear();
    }

    public void addItem(YourObject yourObject) {
        mItems.add(yourObject);
    }

    public void addItems(List<YourObject> yourObjectList) {
        mItems.addAll(yourObjectList);
    }

    @Override
    public int getCount() {
        return mItems.size();
    }

    @Override
    public Object getItem(int position) {
        return mItems.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getDropDownView(int position, View view, ViewGroup parent) {
        if (view == null || !view.getTag().toString().equals("DROPDOWN")) {
            view = getLayoutInflater().inflate(R.layout.toolbar_spinner_item_dropdown, parent, false);
            view.setTag("DROPDOWN");
        }

        TextView textView = (TextView) view.findViewById(android.R.id.text1);
        textView.setText(getTitle(position));

        return view;
    }

    @Override
    public View getView(int position, View view, ViewGroup parent) {
        if (view == null || !view.getTag().toString().equals("NON_DROPDOWN")) {
            view = getLayoutInflater().inflate(R.layout.
                    toolbar_spinner_item_actionbar, parent, false);
            view.setTag("NON_DROPDOWN");
        }
        TextView textView = (TextView) view.findViewById(android.R.id.text1);
        textView.setText(getTitle(position));
        return view;
    }

    private String getTitle(int position) {
        return position >= 0 && position < mItems.size() ? mItems.get(position).title : "";
    }
}

Hinzufügen des Spinners zu Ihrer Symbolleiste

Toolbar toolbar = getActionBarToolbar();

View spinnerContainer = LayoutInflater.from(this).inflate(R.layout.toolbar_spinner,
        toolbar, false);
ActionBar.LayoutParams lp = new ActionBar.LayoutParams(
        ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
toolbar.addView(spinnerContainer, lp);

YourObjectSpinnerAdapter spinnerAdapter = new YourObjectSpinnerAdapter();
spinnerAdapter.addItems(getMyObjectSpinnerData());

Spinner spinner = (Spinner) spinnerContainer.findViewById(R.id.toolbar_spinner);
spinner.setAdapter(spinnerAdapter);

Ergebnis

Materialspinner

KitKat-Spinner

  • Es ist noch nicht zu spät :). Ich möchte hinzufügen, dass toolbar_spinner.xml nicht notwendig ist. Sie können in einfügen. Auf diese Weise benötigen Sie kein Behälteraufblasen und zusätzliche Zugstangen. Spinner verwendet standardmäßig Drawable.

    – bajicdusko

    28. Februar 2015 um 13:51 Uhr

  • getLayoutInflater() scheint nicht erkannt zu werden, wie bekommt man einen LayoutIinflater in den BaseAdapter?

    – Mendhak

    1. März 2015 um 12:25 Uhr

  • Ich denke, das schlägt bei Gingerbread fehl mit: … Verursacht durch: android.content.res.Resources$NotFoundException: Ressource ist kein Drawable (Farbe oder Pfad): TypedValue{t=0x2/d=0x101030e a=2} und 0x101030e scheint zu sein developer.android.com/reference/android/… – Das Entfernen der Verwendung von ?android:selectableItemBackground in styles.xml führt jedoch zu einigen UI-Problemen.

    – aleb

    2. März 2015 um 19:43 Uhr


  • Das funktioniert nicht gut auf Lolipop. Der Hintergrund dort ist dunkel :/

    – Jacek Kwiecień

    5. März 2015 um 18:57 Uhr

  • @Xylian: Hinzufügen android:theme="@style/ThemeOverlay.AppCompat.Light" zu Ihrer Spinner-Komponente, die es für mich behoben hat. Ich habe die Antwort bearbeitet, die meine letzten beiden Kommentare widerspiegelt.

    – Hubi

    20. April 2015 um 7:07 Uhr

Implementieren Sie Spinner nicht in XML

final ArrayAdapter spinnerAdapter = ArrayAdapter.createFromResource(getSupportActionBar().getThemedContext(),
            R.array.main_navigation_list, R.layout.spinner_text);
    spinnerAdapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
    mNavigationTags = getResources().getStringArray(R.array.main_navigation_list);


    mNavigationSpinner = new Spinner(getSupportActionBar().getThemedContext());
    mNavigationSpinner.setAdapter(spinnerAdapter);

    mNavigationSpinner.setOnItemSelectedListener(this);
    mToolbar.addView(mNavigationSpinner);

Auf diese Weise wird das Symbol neben dem Spinner weiß

  • DAS ist der richtige Weg!

    – Langusten Gustel

    20. November 2015 um 8:09 Uhr

Benutzer-Avatar
Miao1007

Tut mir leid für mein schlechtes Englisch. 🙂 Ich denke, es ist besser, den Spinner direkt in der Toolbar zu erstellen.

Hier ist ein Beispiel in meinem Fragment.

public class Testfragment1 extends Fragment {

    Toolbar mToolbar;
    Spinner mSpinner;
    .....

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
        .......                  
        mToolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
        //you can also set the style with the constructor
        mSpinner = new Spinner(getActivity());
        String[] frags = new String[]{
                "category1",
                "category2",
                "category3",
        };
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,frags);
        mSpinner.setAdapter(arrayAdapter);
        mToolbar.addView(mSpinner);
        return inflater.inflate(R.layout.fragment_testfragment1, container, false);
    }

    .........

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        if (mToolbar != null && mSpinner != null) {
            mToolbar.removeView(mSpinner);
        }
    }
}

Auf meinem Android-4.1-Gerät sieht es gut aus:
Android-4.1-Spinner

  • Danke für deine Antwort, ich werde es versuchen. Ich glaube jedoch, dass die Verwendung interner Widget-Implementierungen keine gute Idee ist, da sie in appcompat ohne weitere Ankündigung geändert werden kann. Außerdem erwarte ich in der vollständigen Lösung, dass das Spinner-Popup wie das von Settins aussieht (weißer Hintergrund mit weißem Text).

    – Damian Petla

    9. November 2014 um 13:29 Uhr


  • Wie hast du das auf Android 4.1 kompiliert? Bei der Verwendung von ToolBar zwingt es mich, das minSDK auf 21 zu setzen und wird daher nicht auf etwas niedrigerem kompiliert

    – Sauron

    14. Dezember 2014 um 21:51 Uhr

  • TintSpinner ist ein internes Widget und wird sich ändern. Die Idee ist, interne Widgets als öffentliche freizugeben, daher wird die API mehrere Änderungen erfahren (zum Beispiel wird TintSpinner einfach Spinner genannt). Bitte vermeiden Sie die Verwendung dieser Methode um jeden Preis, es sei denn, Sie planen, bei Ihrer aktuellen AppCompat-Bibliotheksversion und all ihren Fehlern zu bleiben.

    – mradsinski

    10. Februar 2015 um 8:48 Uhr

  • Diese Klassen sind in appcompat v22.2 nicht vorhanden

    – LOG_TAG

    15. Juli 2015 um 7:29 Uhr

  • @LOG_TAG Es ist für die Navigationsschublade konzipiert, Sie werden den Spinner nicht sehen, wenn Sie ihn in ein anderes Fragment geändert haben.

    – Miao1007

    16. Juli 2015 um 7:52 Uhr

Ich kämpfe mit genau dem gleichen Problem.

Versuchen Sie, die Dropdown-Ansichtsressource zu ändern. Zumindest hat dies das Problem mit der Textfarbe für mich behoben – die Farbe des Pfeilsymbols ist jedoch immer noch dunkel. Dies ist also nur eine teilweise Problemumgehung.

setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

Ein einfacher Weg, der nicht perfekt, aber einheitlich genug für 4.x und 5.0 ist

Bild

Ich habe die entfernt <Spinner> aus den Layoutdateien und programmgesteuert hinzugefügt – dadurch konnte das weiße Dreieck richtig angezeigt werden.

Ich habe auch ein Dropdown-Element-Layout mit der für Appcompat erforderlichen Farbe erstellt.

layout/spinner_dropdown_item.xml, beachten Sie die android:background="@color/primaryColor"

<?xml version="1.0" encoding="utf-8"?>
<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"
      android:paddingLeft="12dp"
      android:paddingRight="12dp"
      android:background="@color/primaryColor"
      android:minHeight="?android:attr/listPreferredItemHeightSmall" />

Und in der Aktivität:

    SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(getApplicationContext(), R.array.your_array, R.layout.spinner_dropdown_item);
    Spinner navigationSpinner = new Spinner(getSupportActionBar().getThemedContext());
    navigationSpinner.setAdapter(spinnerAdapter);
    toolbar.addView(navigationSpinner, 0);

Es ist nicht perfekt und die Elemente werden nicht hervorgehoben, wenn Sie darauf klicken, aber es ist gut genug, während wir darauf warten, dass die zukünftigen appcompat-Bibliotheken diese Probleme beheben (hier hoffen wir trotzdem).

Ich habe zwei Tage mit diesem Problem verbracht, aber jetzt, nachdem ich viele Antworten gelesen habe, kann ich meine Lösung posten. Ich habe zwei benutzerdefinierte Layouts für das Spinner-Element und das Popup implementiert. Festlegen dieses Attributs für Spinner: android:background="?android:selectableItemBackground" Der schwarze Pfeil des Standard-Spinners ist ausgeblendet und wir können verwenden, was wir bevorzugen. Ich habe die Methode setDropDownVerticalOffset(int) verwendet, um die Popup-Position in Android-Versionen vor Lollipop zu verwalten.

Mein globales App-Design ist

<style name="AppTheme" parent="AppTheme.Base">

</style>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
    <item name="android:windowBackground">@color/window_background</item>
</style>

Nun das Aktivitätslayout, das die Symbolleiste und das Spinner enthält:

activity_main.xml

<RelativeLayout
    android:layout_width="match_parent" 
    android:layout_height="match_parent"

    android:clickable="true" >

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:elevation="4dp"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >

            <Spinner 
                android:id="@+id/spinner_rss"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:theme="@style/ThemeOverlay.AppCompat.Light"
                android:background="?android:selectableItemBackground" />

         </android.support.v7.widget.Toolbar>
</RelativeLayout>

custom_spinner_toolbar.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

<TextView
    android:id="@+id/spinner_item_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:singleLine="true"
    android:textColor="@android:color/white"
    android:textAppearance="@style/TextAppearance.AppCompat.Title"
     />

<ImageView
    android:contentDescription="@string/content_description_arrow_dropdown"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/spinner_item_text"
    android:layout_toEndOf="@+id/spinner_item_text"
    android:paddingTop="6dp"
    android:src="https://stackoverflow.com/questions/26755878/@drawable/ic_arrow_drop_down_white_24dp" />

</RelativeLayout>

custom_spinner_dropdown_item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <CheckedTextView
        android:id="@+id/spinner_item_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="16dp"
        android:singleLine="true"
        android:textColor="@android:color/black"
        android:textSize="16sp" />

</LinearLayout>

SpinnerAdapter.java

public class SpinnerAdapter extends BaseAdapter
{
   private Context mContext;
   private List<String> mValuesList;

   public SpinnerAdapter(Context mContext, List<String> mValuesList)
   {
       this.mContext = mContext;
       this.mValuesList = mValuesList;
   }

   @Override
   public int getCount() 
   {
       return mValuesList.size();
   }

   @Override
   public Object getItem(int position) 
   {
       return mValuesList.get(position);
   }

   @Override
   public long getItemId(int position) {
       // TODO Auto-generated method stub
       return 0;
   }

   @Override
   public View getDropDownView(int position, View view, ViewGroup parent) 
   {
      if (view == null || !view.getTag().toString().equals("DROPDOWN")) 
      {
         LayoutInflater inflater = LayoutInflater.from(mContext);
         view = inflater.inflate(R.layout.custom_spinner_dropdown_item, parent, false);
         view.setTag("DROPDOWN");
      }

      TextView textView = (TextView) view.findViewById(R.id.spinner_item_text);
      textView.setText(getTitle(position));

      return view;
  }

  @Override
  public View getView(int position, View view, ViewGroup parent) 
  { 
      if (view == null || !view.getTag().toString().equals("NON_DROPDOWN")) 
      {
         LayoutInflater inflater = LayoutInflater.from(mContext);
         view = inflater.inflate(R.layout.custom_spinner_toolbar, parent, false);
         view.setTag("NON_DROPDOWN");
      }

      TextView textView = (TextView) view.findViewById(R.id.spinner_item_text);
      textView.setText(getTitle(position));
      return view;
   }

   private String getTitle(int position) 
   {
      return position >= 0 && position < mValuesList.size() ?   mValuesList.get(position) : "";
   }
}

Abschließend der relevante Teil des Quellcodes der Aktivität:

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);

    final ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
    actionBar.setDisplayHomeAsUpEnabled(true);

    mSpinner = (Spinner) findViewById(R.id.spinner_rss);

    String[] items = getResources().getStringArray(R.array.spinner_rss_items);
    List<String> spinnerItems = new ArrayList<String>();

    for(int i = 0; i < items.length; i++)
    {
        spinnerItems.add(items[i]);
    }

    SpinnerAdapter adapter = new SpinnerAdapter(actionBar.getThemedContext(), spinnerItems);
    mSpinner.setAdapter(adapter);

    if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
    {
        mSpinner.setDropDownVerticalOffset(-116);
    }
}

Dies sind die Ergebnisse zu Lollipop und Kitkat:

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein
Geben Sie hier die Bildbeschreibung ein

Ich hoffe es hilft! 🙂

Benutzer-Avatar
Pranav

Verwenden android:dropDownVerticalOffset Eigenschaft innerhalb des Spinners, um einen Abstand von oben zu geben.

<Spinner
        android:id="@+id/spnrLanguage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:background="@drawable/ic_dropdown"
        android:padding="5dp"
        android:spinnerMode="dropdown"
        android:dropDownVerticalOffset="50dp"
        />

Einstellen nicht vergessen android:spinnerMode=”Dropdown” obwohl es nicht funktionieren wird SpinnerMode= Dialog

1082290cookie-checkWie kann ich den Spinner-Stil für Android 4.x reparieren, der oben auf der Toolbar platziert ist?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy