Spinner Innenpolster ist bei Android 6.0.1 größer.

Intro:

Mit der neuen Version von Android 6.0.1 scheint Android einige Änderungen an der Spinner-Komponente vorgenommen zu haben, da die innere Polsterung um die Daunen-Karotte standardmäßig etwas größer ist.

Ich habe dies bei einer App bemerkt, bei der ich nichts am Code geändert habe, sondern einfach das Betriebssystem auf dem Gerät aktualisiert habe und die Spinner dennoch unterschiedliche Größen haben.

Situation

Ich habe 2 Spinner nebeneinander in einemRelativeLayout (Beachten Sie den Rest der Komponenten, ich habe alles hinzugefügt, damit Sie diesen Teil des Layouts sehen können - die völlig unnötigen Eigenschaften oder Ansichts-IDs wurden entfernt)

<RelativeLayout
    android:id="@+id/header"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:id="@+id/container_for_buttons_on_the_right"
        android:layout_width="wrap_content"
        android:layout_height="48dp"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true">

        <!-- Buttons here-->
    </LinearLayout>

    <android.support.v7.widget.AppCompatSpinner
        android:id="@+id/spinner_1"
        android:layout_width="wrap_content"
        android:layout_height="48dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <ViewSwitcher
        android:id="@+id/spinner_switch"
        android:layout_width="wrap_content"
        android:layout_height="48dp"
        android:layout_toEndOf="@id/spinner_1"
        android:layout_toLeftOf="@id/container_for_buttons_on_the_right"
        android:layout_toRightOf="@id/spinner_1"
        android:layout_toStartOf="@id/container_for_buttons_on_the_right"
        android:inAnimation="@anim/fade_in"
        android:outAnimation="@anim/fade_out">

        <android.support.v7.widget.AppCompatSpinner
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <!-- ImageView properties are incomplete but I need it there.-->
    </ViewSwitcher>
</RelativeLayout>

Das vom Spinner-Adapter für das @ verwendete LayogetView() Methode ist das:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:orientation="horizontal"
    android:paddingLeft="8dp"
    android:paddingRight="8dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:ellipsize="end"
        android:gravity="center_vertical"
        android:singleLine="true"
        tools:text="Test" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="0"
        android:gravity="center"
        android:paddingLeft="4dp"
        android:singleLine="true"
        android:textColor="@color/text_primary"
        android:textSize="@dimen/text_size_body"
        tools:ignore="RtlHardcoded,RtlSymmetry"
        tools:text="7%" />
</LinearLayout>

Exemplified:

Der Screenshot besteht aus 2 separaten Screenshots:

Der auf der Oberseite ist auf einem @ genommNexus Gerät läuft aufAndroid 6.0Der unten stehende ist auch auf einem @ aufgenommNexus Gerät ABER läuft aufAndroid 6.0.1

EDIT 1

ie Verwendung von AppCompatSpinner aus der Supportbibliothek ändert das Verhalten nicht. Die verwendete Unterstützungsbibliotheksversion ist23.1.1

Antworten auf die Frage(4)

Ihre Antwort auf die Frage