Android 使两个相对布局左右浮动
我有一个简单的问题。 我做了两个相对的布局,一个包含图像,另一个包含文本。 我希望它们分别向左和向右浮动。 图像布局的宽度应为40%,而文本布局的宽度应为60% 我怎么能做到这一点? 我的xml代码Android 使两个相对布局左右浮动,android,android-layout,Android,Android Layout,我有一个简单的问题。 我做了两个相对的布局,一个包含图像,另一个包含文本。 我希望它们分别向左和向右浮动。 图像布局的宽度应为40%,而文本布局的宽度应为60% 我怎么能做到这一点? 我的xml代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fil
<?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="wrap_content"
android:orientation="vertical"
android:padding="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:background="#cccccc">
<!-- Name Label -->
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_gravity="right"
android:background="#eaeaea">
<ImageView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:id="@+id/img"
android:src="@drawable/mike"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:background="#fa6800">
<TextView
android:id="@+id/email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:textColor="#acacac"
android:text="email"
android:textStyle="bold"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello This is testing"
android:id="@+id/guid"
android:visibility="gone"/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:paddingTop="6dip"
android:textColor="#43bd00"
android:text="name:"
android:textStyle="bold"
android:visibility="gone"/>
<!-- Email label -->
<!-- Mobile number label -->
<TextView
android:id="@+id/mobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:text="Mobile: "
android:textColor="#5d5d5d"
android:maxLines="1"/>
</RelativeLayout>
</LinearLayout>
您需要将其放置在具有水平方向的线性布局中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:background="#cccccc">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- Name Label -->
<RelativeLayout
android:layout_width="0dip"
android:weight="4"
android:layout_height="150dp"
android:layout_gravity="right"
android:background="#eaeaea">
<ImageView
android:layout_width="150dp"
android:layout_height="wrap_content"
android:id="@+id/img"
android:src="@drawable/mike"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dip"
android:weight="6"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:background="#fa6800">
<TextView
android:id="@+id/email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:textColor="#acacac"
android:text="email"
android:textStyle="bold"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello This is testing"
android:id="@+id/guid"
android:visibility="gone"/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="2dip"
android:paddingTop="6dip"
android:textColor="#43bd00"
android:text="name:"
android:textStyle="bold"
android:visibility="gone"/>
<!-- Email label -->
<!-- Mobile number label -->
<TextView
android:id="@+id/mobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:text="Mobile: "
android:textColor="#5d5d5d"
android:maxLines="1"/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
将android:orientation
更改为水平
,并为左侧的RelativeLayout
添加布局_weight=4
,为右侧的6。其他真实布局中的文本都重叠。为什么会这样?在relativelayout中,您需要告诉textview位于另一个视图的右侧(相对于该视图、父视图或另一个视图……这就是relative layout的用途),否则会发生重叠等情况。请看这里的谷歌快速示例