亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

RelativeLayout(相對布局)用法實例講解

2019-10-21 21:25:13
字體:
來源:轉載
供稿:網友

本節引言

LinearLayout也是我們用的比較多的一個布局,我們更多的時候更鐘情于他的weight(權重)屬性,等比例劃分,對屏幕適配還是幫助蠻大的;但是使用LinearLayout的時候也有一個問題,就是當界面比較復雜的時候,需要嵌套多層的 LinearLayout,這樣就會降低UI Render的效率(渲染速度),而且如果是listview或者GridView上的 item,效率會更低,另外太多層LinearLayout嵌套會占用更多的系統資源,還有可能引發stackoverflow; 但是如果我們使用RelativeLayout的話,可能僅僅需要一層就可以完成了,以父容器或者兄弟組件參考+margin +padding就可以設置組件的顯示位置,是比較方便的!當然,也不是絕對的,具體問題具體分析吧! 總結就是:盡量使用RelativeLayout + LinearLayout的weight屬性搭配使用吧!

核心屬性圖

RelativeLayout,相對布局

2.父容器定位屬性示意圖

RelativeLayout,相對布局

3.根據兄弟組件定位

恩,先說下什么是兄弟組件吧,所謂的兄弟組件就是處于同一層次容器的組件,如圖

RelativeLayout,相對布局

圖中的組件1,2就是兄弟組件了,而組件3與組件1或組件2并不是兄弟組件,所以組件3不能通過組件1或2來進行定位,比如layout_toleftof = "組件1"這樣是會報錯的!切記!關于這個兄弟組件定位的最經典例子就是"梅花布局"了,下面代碼實現下:

運行效果圖:

RelativeLayout,相對布局

實現代碼:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/RelativeLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent" >      <!-- 這個是在容器中央的 -->        <ImageView      android:id="@+id/img1"       android:layout_width="80dp"      android:layout_height="80dp"      android:layout_centerInParent="true"      android:src="@drawable/pic1"/>        <!-- 在中間圖片的左邊 -->    <ImageView      android:id="@+id/img2"       android:layout_width="80dp"      android:layout_height="80dp"      android:layout_toLeftOf="@id/img1"      android:layout_centerVertical="true"      android:src="@drawable/pic2"/>        <!-- 在中間圖片的右邊 -->    <ImageView      android:id="@+id/img3"       android:layout_width="80dp"      android:layout_height="80dp"      android:layout_toRightOf="@id/img1"      android:layout_centerVertical="true"      android:src="@drawable/pic3"/>        <!-- 在中間圖片的上面-->    <ImageView      android:id="@+id/img4"       android:layout_width="80dp"      android:layout_height="80dp"      android:layout_above="@id/img1"      android:layout_centerHorizontal="true"      android:src="@drawable/pic4"/>        <!-- 在中間圖片的下面 -->    <ImageView      android:id="@+id/img5"       android:layout_width="80dp"      android:layout_height="80dp"      android:layout_below="@id/img1"      android:layout_centerHorizontal="true"      android:src="@drawable/pic5"/>    </RelativeLayout>

4.margin與padding的區別

初學者對于這兩個屬性可能會有一點混淆,這里區分下:首先margin代表的是偏移,比如marginleft = "5dp"表示組件離容器左邊緣偏移5dp; 而padding代表的則是填充,而填充的對象針對的是組件中的元素,比如TextView中的文字比如為TextView設置paddingleft = "5dp",則是在組件里的元素的左邊填充5dp的空間! margin針對的是容器中的組件,而padding針對的是組件中的元素,要區分開來!下面通過簡單的代碼演示兩者的區別:

比較示例代碼如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >      <Button      android:id="@+id/btn1"       android:layout_height="wrap_content"      android:layout_width="wrap_content"      android:text="Button"/>    <Button      android:paddingLeft="100dp"       android:layout_height="wrap_content"      android:layout_width="wrap_content"      android:text="Button"      android:layout_toRightOf="@id/btn1"/>        <Button      android:id="@+id/btn2"       android:layout_height="wrap_content"      android:layout_width="wrap_content"      android:text="Button"      android:layout_alignParentBottom="true"/>    <Button      android:layout_marginLeft="100dp"       android:layout_height="wrap_content"      android:layout_width="wrap_content"      android:text="Button"      android:layout_toRightOf="@id/btn2"       android:layout_alignParentBottom="true"/>      </RelativeLayout> 

運行效果圖比較:

RelativeLayout,相對布局

5.很常用的一點:margin可以設置為負數

相信很多朋友都不知道一點吧,平時我們設置margin的時候都習慣了是正數的, 其實是可以用負數的,下面寫個簡單的程序演示下吧,模擬進入軟件后,彈出廣告頁面的,右上角的cancle按鈕的margin則是使用負數的!

效果圖如下:

RelativeLayout,相對布局

貼出的廣告Activity的布局代碼吧,當然,如果你對這個有興趣的話可以下下demo, 因為僅僅是實現效果,所以代碼會有些粗糙!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"   xmlns:tools="http://schemas.android.com/tools"   android:layout_width="match_parent"   android:layout_height="match_parent"   tools:context="com.jay.example.relativelayoutdemo.MainActivity"    android:background="#00CCCCFF">    <ImageView     android:id="@+id/imgBack"     android:layout_width="200dp"     android:layout_height="200dp"     android:layout_centerInParent="true"     android:background="@drawable/myicon" />    <ImageView     android:id="@+id/imgCancle"     android:layout_width="28dp"     android:layout_height="28dp"     android:layout_alignRight="@id/imgBack"     android:layout_alignTop="@id/imgBack"     android:background="@drawable/cancel"     android:layout_marginTop="-15dp"     android:layout_marginRight="-10dp" />  </RelativeLayout> 
 


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女福利精品视频| 92裸体在线视频网站| 久久久久久久久久国产精品| 国产精品入口日韩视频大尺度| 在线丨暗呦小u女国产精品| 欧美日韩免费在线| 久久成人一区二区| 2019中文字幕在线免费观看| 亚洲一二在线观看| 51午夜精品视频| 久久人人爽亚洲精品天堂| 日韩av在线网址| 亚洲已满18点击进入在线看片| 97在线观看免费| 欧美日韩国产成人在线| 亚洲欧美日韩一区在线| 国产午夜精品一区理论片飘花| 欧美寡妇偷汉性猛交| 亚洲精品中文字| 日韩精品久久久久| 中文字幕成人精品久久不卡| 国产成人激情小视频| 神马久久久久久| 欧美精品免费在线观看| 国产精品久久久久久网站| 日韩精品视频三区| 欧美性理论片在线观看片免费| 九九久久久久久久久激情| 浅井舞香一区二区| 日韩精品一区二区视频| 成人在线视频网| 国产在线观看精品| 欧美精品18videos性欧美| 国内外成人免费激情在线视频| 国产亚洲精品久久久久久777| 欧美激情中文字幕乱码免费| 国产精品亚洲精品| 欧美大片在线看免费观看| 亚洲成人av在线播放| 最好看的2019的中文字幕视频| 国产欧美日韩丝袜精品一区| 日韩激情在线视频| 欧美中文字幕在线| 色偷偷888欧美精品久久久| 精品国产视频在线| 亚洲成色777777女色窝| 日韩视频免费观看| 亚洲国产天堂久久综合| 奇米一区二区三区四区久久| 国产精品福利久久久| 亚洲自拍偷拍第一页| 久久亚洲一区二区三区四区五区高| 日韩精品在线视频美女| 欧美性xxxxxxxxx| 国产热re99久久6国产精品| 精品视频在线播放免| 亚洲精品天天看| 欧美天堂在线观看| 亚洲精品视频网上网址在线观看| 亚洲最新av在线网站| 欧美高清第一页| 92看片淫黄大片看国产片| 欧美日韩视频在线| 精品国产成人在线| 欧美老女人www| 伊人男人综合视频网| 在线看国产精品| 中文字幕亚洲欧美日韩高清| 91精品国产高清久久久久久91| 精品亚洲一区二区| 伊人伊成久久人综合网站| 久热在线中文字幕色999舞| 国产a∨精品一区二区三区不卡| 国产精品自产拍在线观| 亚洲精品国产精品国自产在线| 国产午夜精品一区理论片飘花| 亚洲最大福利视频| 国产视频999| 黑人极品videos精品欧美裸| 亚洲爱爱爱爱爱| 日本午夜精品理论片a级appf发布| 亚洲精品日韩久久久| 国产色综合天天综合网| 日韩视频在线观看免费| 国产精品无av码在线观看| 麻豆成人在线看| 久久影视电视剧免费网站| 欧美激情在线视频二区| 久久久久久噜噜噜久久久精品| 日韩美女视频在线观看| 最近日韩中文字幕中文| 成人黄色免费在线观看| 久久亚洲成人精品| 久久精品99久久久久久久久| 久久亚洲综合国产精品99麻豆精品福利| 91精品视频免费观看| 久久久噜噜噜久噜久久| 欧美成人精品激情在线观看| 亚洲视频欧洲视频| 亚洲第一视频在线观看| 久久91亚洲人成电影网站| 97超级碰碰人国产在线观看| 国产亚洲成精品久久| 久久精品国产精品| 欧美二区在线播放| 日韩美女中文字幕| 亚洲人成人99网站| 亚洲午夜精品久久久久久性色| 欧美激情啊啊啊| 精品日本高清在线播放| 日韩精品在线观| 亚洲自拍欧美另类| 中文字幕国产亚洲| 久久久久久久激情视频| 色悠悠国产精品| 疯狂欧美牲乱大交777| 亚洲性日韩精品一区二区| 亚洲最大的免费| 国产精品一区二区性色av| 一区二区三区日韩在线| 91色视频在线导航| 国产成人97精品免费看片| 欧美激情在线观看| 亚洲人免费视频| 日韩精品在线视频| 91亚洲人电影| 亚洲奶大毛多的老太婆| 91成人福利在线| 国产一区欧美二区三区| 成人欧美一区二区三区在线| 国产福利成人在线| 亚洲美女喷白浆| 法国裸体一区二区| 国产精品久久av| 国产精品美女av| 国产成人小视频在线观看| 俺去亚洲欧洲欧美日韩| 成人免费在线网址| 国产亚洲精品美女久久久| 国产欧美日韩精品丝袜高跟鞋| 亚洲国产另类 国产精品国产免费| 国产一区二区三区在线免费观看| 日韩av最新在线| 欧美成人免费视频| 久久亚洲国产精品成人av秋霞| 最新国产精品亚洲| www.日韩不卡电影av| 精品女同一区二区三区在线播放| 国产精品扒开腿做爽爽爽的视频| 中文字幕亚洲欧美日韩高清| 欧美亚洲国产精品| 欧美性生交xxxxxdddd| 国产丝袜一区二区三区免费视频| 亚洲欧洲国产一区| 色中色综合影院手机版在线观看| 日韩av中文字幕在线| 狠狠色香婷婷久久亚洲精品| 欧洲中文字幕国产精品| 亚洲欧美中文字幕在线一区| 91精品国产网站| 久久视频在线免费观看| 青草热久免费精品视频| 欧美性高潮床叫视频| 欧美精品在线极品|