Android布局之RelativeLayout(相对布局)

相对布局由于属性比较多,所以用起来有些费力,但灵活性较其他布局方法好,所以掌握好相对布局将会非常有用。先看等一个例子:
<?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="fill_parent">
   
<TextView
       
android:id="@+id/label"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
       
android:text="Type here:"/>
   
<EditText
       
android:id="@+id/entry"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
       
android:background="@android:drawable/editbox_background"
       
android:layout_below="@id/label"/>
   
<Button
       
android:id="@+id/ok"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:layout_below="@id/entry"
       
android:layout_alignParentRight="true"
       
android:layout_marginLeft="10dip"
       
android:text="OK" />
   
<Button
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:layout_toLeftOf="@id/ok"
       
android:layout_alignTop="@id/ok"
       
android:text="Cancel" />
</RelativeLayout>
这是很常见的布局内容,讲解如下:
        android:layout_below="@id/label"/>
将当前控件放置于id为label 的控件下方。
        android:layout_alignParentRight="true"
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。
android:layout_marginLeft="10dip"
使当前控件左边空出相应的空间。
        android:layout_toLeftOf="@id/ok"
使当前控件置于id为ok的控件的左边。
        android:layout_alignTop="@id/ok"
使当前控件与id控件的上端对齐。

至此,我们已经发现,其属性之繁多。下面简单归纳一下:
第一类:属性值为true或false
*android:layout_centerHrizontal
*android:layout_centerVertical
*android:layout_centerInparent
*android:layout_alignParentBottom
*android:layout_alignParentLeft
*android:layout_alignParentRight
*android:layout_alignParentTop
*android:layout_alignWithParentIfMissing
第二类:属性值必须为id的引用名“@id/id-name”
*android:layout_below
*android:layout_above
*android:layout_toLeftOf
*android:layout_toRightOf
*android:layout_alignTop
第三类:属性值为具体的像素值,如30dip,40px
*android:layout_marginBottom
*android:layout_marginLeft
*android:layout_marginRight
*android:layout_marginTop

再看第二个例子:
<?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="fill_parent">
   
   
<AnalogClock
       
android:id="@+id/aclock"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:layout_centerInParent="true"/>
   
<DigitalClock
       
android:id="@+id/dclock"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:layout_below="@id/aclock"
       
android:layout_alignLeft="@id/aclock"
       
android:layout_marginLeft="40px"/>
   
<TextView
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
       
android:text="当前时间:"
       
android:layout_toLeftOf="@id/dclock"
       
android:layout_alignTop="@id/aclock"/>    
</RelativeLayout>
两个例子的效果图如下:


第一个例子











































第二个例子
posted @   郑文亮  阅读(414)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示