Android的一些视图元素不可见

时间:2012-08-24 06:21:05

标签: android

我正在创建一个如下所示的布局,但复选框元素在scren上看不到我错误的地方?

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

5 个答案:

答案 0 :(得分:1)

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

例如,将包含LinearLayout的{​​{1}}的高度设置为SeekBar

答案 1 :(得分:0)

更改你的LinerLayout定义它不能是android:layout_height =&#34; match_parent&#34;

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

如果为linearlayout设置match_parent,它会消耗所有内容,因此wrap_content更好。 但是如果按照我写的那样设置复选框,则复选框将位于底部,一个linearlayout将消耗屏幕的剩余部分。

答案 2 :(得分: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>

答案 3 :(得分: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>

答案 4 :(得分:0)

在你的布局中选择一个你想要灵活的元素,比如高度。然后制作height="0dp"weight="1"。其余元素的高度:height="wrap_content"

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