gpt4 book ai didi

android - GridLayout 内的 Spinner

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:31 25 4
gpt4 key购买 nike

向 GridLayout 添加 Spinner 似乎会“破坏”布局。我准备了一个最小的工作示例来说明这个问题:

我想要一个左边有标签、右边有输入控件的网格。右侧的控件应占用剩余空间。这是一个简单的示例:

Grid with EditTexts

用微调器替换其中一个输入控件会导致右列超出屏幕边界,从而导致布局难看。

Grid with Spinner

为什么会发生这种情况,我该如何避免?


这是第一个例子的代码:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2" >

<TextView
android:layout_gravity="left"
android:text="TextView" />

<EditText
android:layout_gravity="fill_horizontal"
android:hint="EditText" />

<TextView
android:layout_gravity="left"
android:text="TextView" />

<EditText
android:layout_gravity="fill_horizontal"
android:hint="EditText" />

</GridLayout>

这是第二张图片的代码。唯一的区别是第一个 EditText 已被 Spinner 取代:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2" >

<TextView
android:layout_gravity="left"
android:text="TextView" />

<Spinner
android:id="@+id/spinner1"
android:layout_gravity="fill_horizontal" />

<TextView
android:layout_gravity="left"
android:text="TextView" />

<EditText
android:layout_gravity="fill_horizontal"
android:hint="EditText" />

</GridLayout>

最佳答案

显然,可以通过将 Spinner 的 layout_width 设置为零来避免此问题:

<Spinner 
android:id="@+id/Spinner1"
android:layout_gravity="fill_horizontal"
android:layout_width="0dp" />

我会将此标记为已接受的答案,因为它很容易解决问题,但如果有人可以对此行为提出解释,我会很乐意更改它。

关于android - GridLayout 内的 Spinner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13376728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com