Spinner > Abstand der Zeilen von der angezeigten Liste ändern

  • Hallo zusammen
    habe eine Frage zu dem "Spinner" .
    Wenn man den Spinner anklickt erscheint die dazugehörige Liste.
    Ich würde nun gerne die Zeilenabstände in der Liste verändern.
    Wenn der text nämlich relativ klein dargestellt wird, dann ist auch der Abstand klein und man tut sich schwer den richtigen Eintrag anzuklicken.
    Ich hab schon viel im Internet gesucht und probiert, aber keine Lösung dazu gefunden.


    Kann man das überhaupt irgendwie einstellen.
    Ich dachte padding funktioniert, aber hat es leider nicht.
    Ein Beispiel wo es funktioniert wäre super, dann finde ich vielleicht meinen Denkfehler - falls es überhaupt funktioniert?
    Gruß

  • Hallo


    ich denke und hoffe du benutzt ein eigenes Spinner-Item Layout nicht
    „android.R.layout.simple_spinner_item“


    Meines sieht so aus



  • wie immer danke für die Antwort.
    Also ich habe ein eigenes Spinner_Item_Layout.xml verwendet.
    Wenn ich es so wie standard verwende (so wie in deinem Beispiel) dann sind die Abstände auch wieder ok.


    Ich hab aber leider das Problem, dass ich aus Platzgründen (spezielle Breite) für den Spinner die Textgrösse verkleinern muss.
    Das kann ich ja scheinbar nur mit einer eigenen Spinner_Item.
    Oder geht das doch noch irgendwie anders ???????


    noch zusätzlich 2 kleine verständnis Fragen.
    Was bewirkt die

    Code
    android:layout_weight="1"


    und was passiert eigentlich genau mit dem ...ViewResource
    Im Internet lese ich das dann eigentlich die Radiobuttons mit erscheinen sollen. (wenn der code so ist wie bei dir beschrieben)
    Die erscheinen bei mir aber nicht.

    Code
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.werte, android.R.layout.simple_spinner_dropdown_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    Die Radiobuttons funktionieren nur mit

    Code
    adapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice);
  • Der Hauptgrund warum alles nicht so funktioniert wie es funktionieren sollte ist meine Aufbau des Layouts als ConstraintLayout.
    Bei einem Test mit einem Linear Layout hat es funktioniert so wie du es beschrieben hast.
    Ich musste meine Spinner bei height und width den Wert match_constraint mitgeben (liegt am Aufbau meines Layouts). Das musste ich im Linear Layout test natürlich nicht und deswegen hat das auch besser funktionert.
    Vielleicht habe ich meine Constraint Layout auch nicht so optimal erstellt. Aber eine bessere Lösung dafür habe ich noch nicht gefunden. Mal schauen was die Zukunft macht.


    Ich hab jetzt aber eine Lösung für mich gefunden

    Code
    adapter3.setDropDownViewResource(R.layout.spinner_simple_dropdown_item);


    dann für das dropdown item ein spinner_simple_dropdown_item.xml resource file

    Das ist zwar vielleicht jetzt nicht die beste Lösung, aber es funktioniert zumindes.

  • Hallo


    Ja Textgrösse usw. kannst du nur mit einem eigenen Spinner-Item machen. Du kannst dir auch einen Style in der Style.xml erstellen und im Spinner-Item setzen.
    Bei einen Item von Android kannst du nichts verändern wo auch zu mindestens weiß ich nicht wie.


    Das mit android:layout_weight="1" ist die Gewichtung in einen Linearlayout hätte ich in diesem Beispiel nicht gebraucht hat mir der Designer so erstellt. Da es in dem Fall keine bedutung hat habe ich es gelassen.


    Ist in einen Linearlayout dazu da, wenn mehrere Elemente in einer Zeile neben einander dargestellt werden sollen die Platz Einteilung festzulegen.


    Das dies an dem Constraint Layout liegt kann ich nicht ganz glauben habe es auch versucht und im Layout „warp Content“ gesetzt natürlich ist die Liste dann nur so breit wie der Längste Listen Eintrag (Wort ,Text). Glaube du birgst die zwei layouts estwas durch einander. Der im Activity Layout (bei der Constraint Layout) erstellte Spinner ist ein Platzhalter für die Liste. Die ausdem Sinner-Item gebildet wird. Somit kann die Breite der Liste nur die Breite des Spinners sein, für das Item ist der Spinner das Eltern Element. Wie du die Höhe des Item und somit der Liste beeinflusst hast du ja nun schon raus gefunden. Zu meinen „attr/listPreferedItemHeigt“ Gibt es noch listPreferedItemHeigtLarge, listPreferedItemHeigtSmale. Die Zeile „//adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);“ist noch ein Überbleibsel aus einem Standard Code habe sie vergessen zu löschen da sie nicht gebraucht wird ist sie auch aus Kommentiert „//“.Mit Radio Buttons hat das hier nichts zu tuen.lg Jörg

  • Danke wie immer für deine ausführliche Beschreibung.
    Es kann schon sein, dass ich irgendwie noch einiges mixe und ein wenig Hintergrund Wissen fehlt. Ich hab auch leider noch nichts gefunden wo das richtige erstellen eines komplexen Constraint Layouts beschrieben wird. Ich finde das Constraint Layout echt super und hab es so gut erstellt wie es für mich logisch war. Ich merke aber, desto länger ich damit arbeite und Erfahrung sammle desto mehr wird mir klar, dass ich einiges anders machen hätte sollen
    Gruß

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!