在设计的过程中我们一定经常会遇到这样的需求:
一行内放3个控件,左边控件左对齐,右面控件右对齐,中间控件来填充剩下的空间。
或者一列内放3个控件,上面的与顶部对齐,下面的沉在最底部,中间控件是弹性的,充满剩余空间。
情况一:水平布局
图示:
这是第一种情形。由于涉及到ImageView,想保持图片原比例不便使用LinearLayout的weight属性。
解决办法:
1.外层套一个RelativeLayout
2.三个控件分别装进3个LinearLayout中,假如id分别为leftlayout,midlayout,rightlayout
leftlayout属性:android:layout_width="wrap_content"
rightlayout属性:android:layout_width="wrap_content"
midlayout属性: android:layout_width="match_parent"
android:layout_toLeftOf="@+id/rightlayout"
android:layout_toRightOf="@+id/leftlayout"
这样就可以达到两端控件分别左右对齐,中部控件填充剩余空间的效果。
上图效果的布局图示:
上图效果的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="34dp"
android:background="#FFFFFF"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/choosetags_listview_item_leftlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true">
<ImageView