0

我正在创建如下布局,但复选框元素在屏幕上不可见,我哪里出错了?

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout android:orientation="horizontal" 
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <SeekBar android:id="@+id/seek" 
            android:layout_width="300dip"
            android:layout_height="wrap_content" 
            android:progress="50"/>

        ...and a few more elements here.

    </LinearLayout>

    <CheckBox android:id="@+id/CheckBox" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:text="somestring" />

</LinearLayout>
4

5 回答 5

1

LinearLayout之前的高度CheckBox设置为MATCH_PARENT(并且它填充了所有父级的高度),并且两者的父LinearLayout级都将方向设置为垂直,因此CheckBox被推出屏幕。

LinearLayout例如,将包含的高度设置SeekBarWRAP_CONTENT

于 2012-08-24T06:22:48.340 回答
0

更改您的 LinerLayout 定义它不能是 android:layout_height="match_parent"

<LinearLayout android:orientation="horizontal" 
    android:layout_width="match_parent"
    android:layout_height="0px"
    android:layout_weight="1">

如果您为线性布局设置 match_parent 它会消耗所有内容,因此 wrap_content 更好。但是,如果您按照我写的方式设置它,复选框将位于底部页面,线性布局将消耗屏幕的剩余部分。

于 2012-08-24T06:27:43.047 回答
0

您需要设置内部线性布局的高度和宽度来包装内容。试试这个。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <SeekBar
            android:id="@+id/seek"
            android:layout_width="300dip"
            android:layout_height="wrap_content"
            android:progress="50" />
    </LinearLayout>

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

</LinearLayout>
于 2012-08-24T06:33:32.337 回答
0

试试这个 :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="10" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="9"
    android:orientation="horizontal" >

    <SeekBar
        android:id="@+id/seek"
        android:layout_width="300dip"
        android:layout_height="wrap_content"
        android:progress="50" />
</LinearLayout>

<CheckBox
    android:id="@+id/CheckBox"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="somestring" />

</LinearLayout>
于 2012-08-24T06:35:21.073 回答
0

在您的布局中选择了一个您希望大小灵活的元素,比如高度。然后使其height="0dp"weight="1"。制作其余元素的高度:height="wrap_content".

此外,您可能已经为其他元素提供了一些 dp 的谨慎大小,因此它们的总高度超出了可用的屏幕空间,或者有太多元素超出了您的屏幕高度。在这种情况下,请将您的布局包装在ScrollView.

于 2012-08-24T06:47:01.337 回答