论坛首页 移动开发技术论坛

RelativeLayout中的布局,自适应宽度布局

浏览 7903 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-08-28   最后修改:2011-08-28



该图片中为android布局:
总布局为 RelativeLayout
AtLeft 为居左
<TextView android:background="#ff0000ff" android:id="@+id/tvwAtLeft"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="AtLeft" android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"></TextView>

AtRight为居右
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_alignParentTop="true"
android:layout_alignParentRight="true" android:id="@+id/tvwAtRight"
android:text="AtRight" android:background="#ff0000ff"></TextView>

Scroll为中间的布局
<TextView android:layout_height="wrap_content"
android:layout_alignParentTop="true" android:layout_toRightOf="@+id/tvwAtLeft"
android:layout_width="fill_parent" android:id="@+id/tvwScrolling"
android:layout_toLeftOf="@+id/tvwAtRight" android:text="Scrolling"
android:background="#FFFF0000"></TextView>

在中间的布局设置了android:layout_width="fill_parent"
android:layout_toRightOf="@+id/tvwAtLeft"
android:layout_toRightOf="@+id/tvwAtLeft"
三个属性后,那么将会有类似于LinearLayout布局中的layout_weight="1"(大于0的值)一样的效果,宽度进行了自适应

xml代码如下:

<?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="fill_parent">
	<TextView android:layout_height="wrap_content"
		android:layout_width="wrap_content" android:layout_alignParentTop="true"
		android:layout_alignParentRight="true" android:id="@+id/tvwAtRight"
		android:text="AtRight" android:background="#ff0000ff"></TextView>
	<TextView android:background="#ff0000ff" android:id="@+id/tvwAtLeft"
		android:layout_height="wrap_content" android:layout_width="wrap_content"
		android:text="AtLeft" android:layout_alignParentTop="true"
		android:layout_alignParentLeft="true"></TextView>
	<TextView android:layout_height="wrap_content"
		android:layout_alignParentTop="true" android:layout_toRightOf="@+id/tvwAtLeft"
		android:layout_width="fill_parent" android:id="@+id/tvwScrolling"
		android:layout_toLeftOf="@+id/tvwAtRight" android:text="Scrolling"
		android:background="#FFFF0000"></TextView>

</RelativeLayout>


但是如果中间再加多一个Scrolling2的TextView,意图想将Scrolling 和Scrolling2平分中间的部分,那么效果则不一样
代码:
<?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="fill_parent">
	<TextView android:layout_height="wrap_content"
		android:layout_width="wrap_content" android:layout_alignParentTop="true"
		android:layout_alignParentRight="true" android:id="@+id/tvwAtRight"
		android:text="AtRight" android:background="#ff0000ff"></TextView>
	<TextView android:background="#ff0000ff" android:id="@+id/tvwAtLeft"
		android:layout_height="wrap_content" android:layout_width="wrap_content"
		android:text="AtLeft" android:layout_alignParentTop="true"
		android:layout_alignParentLeft="true"></TextView>
	<TextView android:layout_height="wrap_content"
		android:layout_alignParentTop="true" android:layout_toRightOf="@+id/tvwAtLeft"
		android:layout_width="fill_parent" android:id="@+id/tvwScrolling"
		android:text="Scrolling"
		android:background="#FFFF0000" android:layout_toLeftOf="@+id/tvwScrolling2"></TextView>
	<TextView android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toLeftOf="@+id/tvwAtRight" android:id="@+id/tvwScrolling2" android:background="#ff00ff00" android:layout_width="fill_parent" android:layout_toRightOf="@+Id/tvwAtScrolling" android:text="Scrolling2"></TextView>

</RelativeLayout>



效果如下




总结:
android 中搞比较灵活的布局,目前这套api来说还是不够理想啊,
尤其是不能通过百分比的方式来进行布局,即使能够通过linearlayout中的weight,也往往未能达到所需的目的。
这样一来,很多灵活的布局,尤其在自适应屏幕上面,设计者可得花上不少的心思了。
期望谷歌以及android的开发团队们,早日作出能够适用于百分比属性的布局,类似于html
  • 大小: 8.6 KB
  • 大小: 6.8 KB
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics