2

我是 android 新手,我正在使用线性布局。我想放置一个占屏幕 20% 的图像。这是代码,但这不起作用。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/sky" >

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="2" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/schoolroad" />

</RelativeLayout>

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="8" >
</RelativeLayout>

</LinearLayout>

结果是左侧布局占据了屏幕的 80%。

我的代码有什么问题?

4

4 回答 4

9

你应该指定你的方向LinearLayout

当您使用重量时,您应该将宽度(或高度)设置为与您的方向相对应的 0dp。

所以如果你的方向是垂直的,你应该在使用重量时将高度设置为零。如果它是水平的,则在使用权重时宽度应该为零。

尝试这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/sky" 

    android:orientation="vertical"

    >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="2" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:src="@drawable/schoolroad" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="8" >
    </RelativeLayout>

</LinearLayout>
于 2013-06-21T16:45:09.767 回答
4

对于vertical方向,不要忘记设置height为 0dp

android:layout_height="0dp"

对于horizontal方向,不要忘记设置width为 0dp

android:layout_width="0dp"
于 2018-06-24T09:47:37.380 回答
1

android:layout_width="0dp"fill_parent包含layout_weight. _

于 2013-06-21T16:46:21.283 回答
0

尝试这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/LinearLayout1"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="@drawable/sky" >

    <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="2">

        <ImageView
                android:id="@+id/imageView1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:src="@drawable/schoolroad" />

    </RelativeLayout>

    <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="8">
    </RelativeLayout>

</LinearLayout>
于 2013-06-21T16:46:21.633 回答