在微调器中选择长文本然后创建空间

时间:2018-02-16 11:53:58

标签: java android android-layout

当我在spinner中选择长文本时,会在textViewspinner

之间创建空格

查看我的默认 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"
                    />
代码下面的

style.xml

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

任何人都知道如何解决它

提前致谢:

5 个答案:

答案 0 :(得分:3)

您将微调器高度设置为“wrap_content”,以便它自动调整其高度。您应该将Spinner行的Textview最大行设置为1.然后它不会显示双线。 Textview xml文件

-2

答案 1 :(得分:1)

添加到@Kush的答案,请确保您的父级也有wrap_content,以便您的微调文本可以显示在一行中。否则,即使你给你的微调器提供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"
                            />

答案 2 :(得分:1)

问题是你的textView和spinner共享父视图的50%和50%。最好将weightSum设置为父视图,并为spinner分配更多宽度。然后你可以在微调器中有一行文本。

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

这是一个工作示例,可根据您的需要调整重量。

答案 3 :(得分:1)

如果你可以设置固定侧的旋转器宽度和旋转器的重量,那么你的问题将自动解决......讨论..!

            <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"
                    />

我希望它可以帮助你......!

答案 4 :(得分:1)

你需要在文本视图中使用android:ems并取出重量线。

在textview中包含以下代码

android:ems="5"

删除下面的一行

android:layout_weight="2.5"
希望它有所帮助...