我是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%。
我的代码出了什么问题?
答案 0 :(得分: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>
答案 1 :(得分:2)
对于vertical
方向,请不要忘记将height
设置为0dp
android:layout_height="0dp"
对于horizontal
方向,请不要忘记将width
设置为0dp
android:layout_width="0dp"
答案 2 :(得分:1)
对包含android:layout_width="0dp"
的子视图使用fill_parent
代替layout_weight
。
答案 3 :(得分: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>