我的XML文件中有以下代码:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="60dip"
android:layout_marginLeft="13dp"
android:layout_marginRight="13dp"
android:layout_marginTop="20dp"
android:background="@color/white"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/name_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/pic"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="6dp" />
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_alignRight="@id/pic" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/phone_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/phone_pic"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="6dp"
android:layout_weight="0.15" />
<EditText
android:id="@+id/phone_number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_alignRight="@id/phone_pic" />
</RelativeLayout>
</LinearLayout>
我希望ImageView
内的EditText
和RelativeLayout
字段以及EditText
右侧的E ImageView
字段。但是,当我检查图形布局时,EditText
和ImageView
会放在RelativeLayout
以外的LinearLayout
之外。我做错了什么以及如何纠正这个问题?
答案 0 :(得分:3)
为什么不用水平RelativeLayout
LinearLayout
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="60dip"
android:layout_marginLeft="13dp"
android:layout_marginRight="13dp"
android:layout_marginTop="20dp"
android:background="@color/white"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/name_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/pic"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="6dp" />
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/phone_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/phone_pic"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="6dp"
android:layout_weight="0.15" />
<EditText
android:id="@+id/phone_number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:1)
这会对你有帮助........
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/imageView1"
android:ems="10" >
<requestFocus />
</EditText>
</RelativeLayout>
答案 2 :(得分:0)
尝试使用属性android:layout_toRightOf
将此视图的左边缘定位到给定锚点的右侧 查看ID。容纳此视图的左边距和右边距 锚视图。
所以试试这个:
<RelativeLayout
android:id="@+id/name_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/pic"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="6dp" />
<EditText
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/pic" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/phone_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/phone_pic"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="6dp"
android:layout_weight="0.15" />
<EditText
android:id="@+id/phone_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/phone_pic" />
</RelativeLayout>
</LinearLayout>
如果你想要一个更好理解的例子,这里有一个给你。还有一个源代码,所以你可以测试。 http://www.mkyong.com/android/android-relativelayout-example/
答案 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="60dp"
android:layout_marginLeft="13dp"
android:layout_marginRight="13dp"
android:layout_marginTop="20dp"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/name_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/pic"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher" />
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@id/pic" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/phone_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/phone_pic"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher" />
<EditText
android:id="@+id/phone_number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@id/phone_pic" />
</RelativeLayout>
答案 4 :(得分:0)
正如rogcg先生所说的尝试android:layout_toRightOf它会起作用。但是,您还必须在“线性布局”属性中进行某些更改。你已经指定了android:layout_height =“60dip”
导致隐藏连续的相对布局。使其填充父级并设置layout_toRightOf。它会起作用。
同样对于图像视图,如下指定src android:src =“@ drawable / someimage”
谢谢&amp;问候, Rajamanickem.S
答案 5 :(得分:-1)
更改布局中的这些代码行是错误的
android:layout_alignRight="@id/phone_pic"
android:layout_alignRight="@id/pic"
写下这些行
android:layout_alignRight="@+id/phone_pic"
android:layout_alignRight="@+id/pic"