Выберите длинный текст в spinner, затем создайте пространство

когда я выбираю длинный текст в своем spinner тогда он создает пространство между textView и spinner

см. мой spinner умолчанию:

enter image description here

после выбора длинного текста это выглядит как снимок:

enter image description here

ниже - код xml:

<TextView
                    style="@style/TextLabelBookGray"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_weight="1"
                    android:text="@string/hint_state"
                    android:textSize="@dimen/_14ssp"
                    android:paddingLeft="@dimen/_2sdp"
                    android:visibility="visible" />

                <android.support.v7.widget.AppCompatSpinner
                    android:id="@+id/spStates"
                    style="@style/TextLabelBookBlack"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginBottom="@dimen/_4sdp"
                    android:layout_marginTop="@dimen/_4sdp"
                    android:layout_weight="1"
                    android:entries="@array/us_states"
                    />

ниже code is style.xml:

<style name="TextLabelBookGray" parent="FontBook">
        <item name="android:textSize">@dimen/_14ssp</item>
        <item name="android:textColor">@color/input_color_gray</item>

кто-нибудь знает, как это исправить

Заранее спасибо:

Ответ 1

Дело в том, что ваш textView и spinner разделяют 50% и 50% родительского представления. Лучше вы установите weightSum на родительский вид и выделите большую ширину для поворота. Затем вы можете иметь один текст строки в прядильщике.

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="10">

            <TextView
                style="@style/TextLabelBookGray"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="2.5"
                android:text="@string/hint_state"
                android:textSize="@dimen/_14ssp"
                android:paddingLeft="@dimen/_2sdp"
                android:visibility="visible" />

            <android.support.v7.widget.AppCompatSpinner
                android:id="@+id/spStates"
                style="@style/TextLabelBookBlack"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginBottom="@dimen/_4sdp"
                android:layout_marginTop="@dimen/_4sdp"
                android:layout_weight="7.5"
                android:entries="@array/us_states"/>

        </LinearLayout>

Это рабочий пример и настройте вес в соответствии с вашими потребностями.

Ответ 2

Вы устанавливаете высоту счетчика как "wrap_content", чтобы она автоматически регулировала его высоту. Вы должны установить строку Spinner row Textview max как 1. Затем она не будет отображать двойную линию. Текстовый XML файл

android:maxLines="1"

Ответ 3

Добавляя к ответу @Kush, убедитесь, что ваш родитель также имеет wrap_content, чтобы ваш текст spinner мог отображаться в одной строке. В противном случае он будет выглядеть так же, даже если вы дадите wrap_content вашему счетчику.

Пожалуйста, используйте нижеприведенный код:

  <android.support.v7.widget.AppCompatSpinner
                            android:id="@+id/spStates"
                            style="@style/TextLabelBookBlack"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_vertical"
                            android:layout_marginBottom="@dimen/_4sdp"
                            android:layout_marginTop="@dimen/_4sdp"
                            android:layout_weight="1"
                            android:maxLines="1"
                            android:entries="@array/us_states"
                            />

Ответ 4

Если вы можете установить ширину прядильной машины в фиксированную сторону и вес выталкивателя, то ваша проблема будет автоматически решена. Buddy..!

            <TextView
                    style="@style/TextLabelBookGray"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_weight="1"
                    android:text="@string/hint_state"
                    android:textSize="@dimen/_14ssp"
                    android:paddingLeft="@dimen/_2sdp"
                    android:visibility="visible" />

                <android.support.v7.widget.AppCompatSpinner
                    android:id="@+id/spStates"
                    style="@style/TextLabelBookBlack"
                    android:layout_width="150dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginBottom="@dimen/_4sdp"
                    android:layout_marginTop="@dimen/_4sdp"
                    android:entries="@array/us_states"
                    />

я надеюсь, что это может вам помочь..!

Ответ 5

вам нужно использовать android: ems в вашем текстовом виде и вынуть линию веса.

введите код ниже в текстовое поле

android:ems="5"

удалите строку ниже

android:layout_weight="2.5"

Надеюсь, поможет...