我有一个自定义标题栏的以下布局。但问题是:imageview
和imagebutton
都在中心位置。我期待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>
答案 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>
`