Android布局:如何对齐TextView和Spinner

6
我想将一个显示“Day:”的TextView与一个Spinner对齐,用户可以在其中选择他想要的星期几(星期一、星期二等)。
当我尝试将它们对齐时:
 <TextView android:id="@+id/labelSpinner1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/textSpinner1"
                    android:layout_toRightOf="@+id/spinner_days"
                    android:layout_alignParentTop="true"/>

                <Spinner android:id="@+id/spinner_days"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignBaseline="@+id/labelSpinner1"
                    android:layout_alignParentLeft="true"
                    android:drawSelectorOnTop="true"/>

我得到的结果是,我只看到了下拉菜单,而文本视图没有显示(或者在下拉菜单下面)。
谢谢你的帮助!
1个回答

9
我猜你想要把Spinner放在TextView的右边?请检查以下代码:

我猜你想要把Spinner放在TextView的右边?请检查以下代码:

<TextView
    android:id="@+id/labelSpinner1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:text="@string/textSpinner1" />

<Spinner
    android:id="@+id/spinner_days"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@id/labelSpinner1"
    android:layout_toRightOf="@id/labelSpinner1"
    android:drawSelectorOnTop="true" />

您的问题在于,微调器占据了整个视图(android:layout_width="fill_parent"),而您强制要求TextView位于微调器的右侧(因此在屏幕外部——> 对您不可见)


如果我想在 EditText 的正下方添加一个与 TextView 对齐的 TextView,该怎么做? - user1820528
这有点相似。只需重用上面的代码,删除alignParentTop行,并添加到两个新视图(textview / edittext)android:layout_below="@id/labelSpinner1"。 此外,我建议您阅读Android中不同布局类型的文档:链接 - reVerse
不适用于LinearLayout。 - Someone Somewhere
@SomeoneSomewhere 确实。只有 RelativeLayout 具有属性 android:layout_toRightOf。当您使用 LinearLayout 时,您可以通过添加 android:orientation="horizontal" 轻松实现它(显然,您应该在单独的 LinearLayout 中包装 SpinnerTextView)。 - reVerse
为了解决这个问题,我最终做的是保持LinearLayout(方向=水平),并在spinner中将layoutGravity设置为“bottom”。现在,spinner和TextInputEditText(位于TextInputLayout内部)非常对齐。 - Someone Somewhere

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接