android布局的问题

时间:2011-09-11 01:29:03

标签: android android-layout

我有一个自定义标题栏的以下布局。但问题是:imageviewimagebutton都在中心位置。我期待imagebutton处于极右翼。有谁可以让我知道我在这里做错了什么?感谢。

            <?xml version="1.0" encoding="utf-8"?>
            <LinearLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="35dip"
                android:gravity="center_vertical"
                android:paddingLeft="5dip"
                android:background="#323331">

                <ImageView 
                android:src="@drawable/header" 
                android:id="@+id/header" 
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent"
                android:gravity="center_horizontal">
                </ImageView>


                <ImageButton
                android:id="@+id/saveButton"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/savetap"
                android:background="@null"
                android:gravity="right"
                android:layout_above="@+id/header">
                </ImageButton>

            </LinearLayout>

3 个答案:

答案 0 :(得分:1)

你的布局只有35dip高,所以如果你展示你的ImageView,那么压缩就会让ImageButton位于屏幕之外。考虑将layout_height更改为wrap_content,如果合适的话。

答案 1 :(得分:0)

您正在使用垂直方向的LinearLayout,所有View都将以垂直方式呈现。使用RelativeLayout,以便您可以更好地控制视图的位置。如果您仍然想使用LinearLayout,则必须使用水平方向,以便视图可以位于相同的“线”上。

使用layout_gravity将项目布局到右侧,视图内容仅使用gravity

答案 2 :(得分:0)

首先,如果将width设置为填充父级,则它实际填充父级,因此它使用所有宽度。 第二:为什么不是RelativeLayout?它提供了更多选项和控制。 也许这就是你要找的: `

<?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="35dip"
        android:gravity="center_vertical"
        android:paddingLeft="5dip"
        android:background="#323331">

        <ImageView 
            android:src="@drawable/header" 
            android:id="@+id/header" 
            android:layout_height="wrap_content" 
            android:layout_width="wrap_content"
            android:layout_gravity="left">
        </ImageView>


        <ImageButton
            android:id="@+id/saveButton"
            android:layout_height="wrap_content"
            android:src="@drawable/savetap"
            android:background="@null" 
            android:layout_marginLeft="20dp"
            android:layout_width="wrap_content" android:layout_alignParentRight="true">
        </ImageButton>

    </RelativeLayout>

`