0

我是 Android 开发的新手(实际上我今天已经下载了 ADK),我想创建一个包含两列的简单设置页面。第一列应该是文本,第二列应该是按钮/滑块/等。

我的问题是,当我使用 LinearLayout 时,只有 FULL WIDTH TEXT 可见。列显示在文本右侧的屏幕“外部”。

这就是屏​​幕的样子。

/-----------------\
| FULL WIDTH TEXT |
|                 |
| Column1 Column2 |
| Column1 Column2 |
\-----------------/

我的 XML 文件有内容:

<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="match_parent"
tools:context=".MainActivity"
android:weightSum="2"
android:orientation="horizontal"
>

<TextView
    android:id="@+id/textview_settings_hint"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/settings_hint" />

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical"
    android:visibility="visible" >

    <CheckBox
        android:id="@+id/checkbox_motion_sensor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/checkbox_motion_sensor" />

    <CheckBox
        android:id="@+id/checkbox_light_sensor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/checkbox_light_sensor" />

    <CheckBox
        android:id="@+id/checkbox_shake_sensor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/checkbox_shake_sensor" />
</LinearLayout>

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical"
    android:visibility="visible" >

    <SeekBar
        android:id="@+id/seekbar_motion_sensor_sensitivity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>     

如何设置要在 TextView 底部绘制的内部布局?谢谢您的帮助。

4

1 回答 1

1

您的项目被设置在屏幕的右侧,因为您的根线性布局具有水平方向的属性,因此,第一个元素被显示,下一个元素被推到屏幕的右侧。为了解决该特定问题,只需将属性更改为垂直,您会注意到您的内部布局将所有元素一个在另一个之上,为了获得“两个”列效果,您需要创建另一个水平布局在第一个文本视图之后,这样你就告诉充气机,第一个文本将设置在你的水平列的顶部。正如建议一样,您尝试做的事情可以简单地使用 TableLayout 或 RelativeLayout 来完成,您应该看看它们......

问候!

于 2013-08-17T16:33:48.863 回答