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

首頁 > 學院 > 開發設計 > 正文

最全面的ConstraintLayout教程

2019-11-09 15:54:23
字體:
來源:轉載
供稿:網友

原文鏈接:http://mp.weixin.QQ.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650238469&idx=1&sn=49154d3b2c0a94c68c27a2b6da0e3759&chksm=88639f6abf14167cbd3e197c6770af73864917322b2b18bcbbf07870667f60951d6ac4bc4d86&mpshare=1&scene=23&srcid=020357JExx0Ck7rTusM1ojQU#rd

本篇文章的主題是ConstraintLayout。其實ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大會上重點宣傳的一個功能。我們都知道,在傳統的Android開發當中,界面基本都是靠編寫xml代碼完成的,雖然Android Studio也支持可視化的方式來編寫界面,但是操作起來并不方便,我也一直都不推薦使用可視化的方式來編寫Android應用程序的界面。

而ConstraintLayout就是為了解決這一現狀而出現的。它和傳統編寫界面的方式恰恰相反,ConstraintLayout非常適合使用可視化的方式來編寫界面,但并不太適合使用XML的方式來進行編寫。當然,可視化操作的背后仍然還是使用的XML代碼來實現的,只不過這些代碼是由Android Studio根據我們的操作自動生成的。

另外,ConstraintLayout還有一個優點,它可以有效地解決布局嵌套過多的問題。我們平時編寫界面,復雜的布局總會伴隨著多層的嵌套,而嵌套越多,程序的性能也就越差。ConstraintLayout則是使用約束的方式來指定各個控件的位置和關系的,它有點類似于RelativeLayout,但遠比RelativeLayout要更強大。

其實ConstraintLayout屬于Android Studio 2.2的新特性,我在去年寫《第二行代碼》的時候就非常想要將這部分內容加入到新書里面,但是在嘗試之后還是放棄了。因為ConstraintLayout的用法很多都是對控件進行拖拽,只用文字或者是一些靜態圖片實在太難將它的用法表達清楚了,因此不太適合寫到書上。我當時的想法就是后面寫一篇文章來講解ConstraintLayout的用法,彌補一下《第二行代碼》中缺失的這部分新特性,那么今天這篇文章來了。

開始

下面我們開始用邊學邊練的方式來進行學習,首先打開你的Android Studio,并新建一個ConstraintLayoutTest項目。另外,確保你的Android Studio是2.2或以上版本。

為了要使用ConstraintLayout,我們需要在app/build.gradle文件中添加ConstraintLayout的依賴,如下所示。

目前ConstraintLayout庫最新的版本是1.0.0-beta4,還沒有推出正式穩定版本,不過這并不影響我們提前進行學習和使用。

現在打開res/layout/activity_main.xml文件,由于這是一個新建的空項目,Android Studio會自動幫我們創建好一個布局,如下圖所示。

不過,Android Studio自動創建的這個布局默認使用的是RelativeLayout,我們可以通過如下操作將它轉換成ConstraintLayout。

轉換完成之后,原RelativeLayout中的內容也會自動轉換到ConstraintLayout中,比如圖中的TextView。如果你不需要它的話,可以選中這個控件,然后按鍵盤上的Delete鍵即可刪除。

我們可以看到,現在主操作區域內有兩個類似于手機屏幕的界面,左邊的是預覽界面,右邊的是藍圖界面。這兩部分都可以用于進行布局編輯工作,區別是左邊部分主要用于預覽最終的界面效果,右邊部分主要用于觀察界面內各個控件的約束情況。

基本操作下面我們來學習一些具體的操作吧,ConstraintLayout的基本用法很簡單,比如我們想要向布局中添加一個按鈕,那么只需要從左側的Palette區域拖一個Button進去就可以了,如下圖所示。

雖說現在Button已經添加到界面上了,但是由于我們還沒有給Button添加任何的約束,因此Button并不知道自己應該出現在什么位置?,F在我們在預覽界面上看到的Button位置并不是它最終運行后的實際位置,如果一個控件沒有添加任何約束的話,它在運行之后會自動位于界面的左上角。

那么下面我們就來給Button添加約束,每個控件的約束都分為垂直和水平兩類,一共可以在四個方向上給控件添加約束,如下圖所示。

上圖中Button的上下左右各有一個圓圈,這圓圈就是用來添加約束的,我們可以將約束添加到ConstraintLayout,也可以將約束添加到另一個控件。比如說,想讓Button位于布局的右下角,就可以這樣添加約束,如下圖所示。

我們給Button的右邊和下邊添加了約束,因此Button就會將自己定位到布局的右下角了。類似地,如果我們想要讓Button居中顯示,那么就需要給它的上下左右都添加約束,如下圖所示。

這就是添加約束最基本的用法了。

除此之外,我們還可以使用約束讓一個控件相對于另一個控件進行定位。比如說,我們希望再添加一個Button,讓它位于第一個Button的正下方,并且間距64dp,那么操作如下所示。

現在添加約束的方式我們已經學完了,那么該怎樣刪除約束呢?其實也很簡單,刪除約束的方式一共有三種,第一種用于刪除一個單獨的約束,將鼠標懸浮在某個約束的圓圈上,然后該圓圈會變成紅色,這個時候單擊一下就能刪除了,如下圖所示。

第二種用于刪除某一個控件的所有約束,選中一個控件,然后它的左下角會出現一個刪除約束的圖標,點擊該圖標就能刪除當前控件的所有約束了,如下所示。

第三種用于刪除當前界面中的所有約束,點擊工具欄中的刪除約束圖標即可,如下圖所示。

Inspector這樣我們就把ConstraintLayout的基本用法學完了,接下來我們開始學習一些進階的內容。

當你選中任意一個控件的時候,在右側的

到這里,我們基本就把ConstraintLayout中的重要用法都概括到了,通過本篇的學習,大家也對ConstraintLayout有了比較深入的認識。當然,ConstraintLayout目前還是處于beta版本,有很多的功能仍然在改進當中。比如說,beta3版本中引入的Chains功能就是一個很強大的新功能,不過由于這個功能需要配合Android Studio 2.3來使用,而2.3目前也還沒有出正式版,因此我就沒在本篇文章中加入這部分內容的介紹。等以后ConstraintLayout的功能更加豐富的時候,我可能會再寫一篇ConstraintLayout的高級用法,來補足這方面的內容吧。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产69精品久久久久9| 精品免费在线观看| 久热国产精品视频| 亚洲成色777777在线观看影院| 亚洲一区二区少妇| 国产午夜精品一区理论片飘花| 裸体女人亚洲精品一区| 精品久久久久久久久久ntr影视| 欧美激情在线有限公司| 美女黄色丝袜一区| 欧美日韩综合视频网址| 国产精品美女主播在线观看纯欲| 91亚洲精品久久久| 国产精品网址在线| 欧美另类在线播放| 午夜精品久久久久久久99热浪潮| 国产女人18毛片水18精品| 国产精品露脸自拍| 欧美视频在线观看免费网址| 中文字幕亚洲国产| 91精品久久久久久久久不口人| 欧美激情一区二区久久久| 精品中文字幕久久久久久| 欧美视频一区二区三区…| 国产精品jizz在线观看麻豆| 日韩小视频在线| 欧美www视频在线观看| 亚洲女成人图区| 北条麻妃99精品青青久久| 日韩激情片免费| 日韩女优在线播放| 日韩一级黄色av| 欧美俄罗斯乱妇| 最近2019中文字幕在线高清| 成人黄色午夜影院| 成人网址在线观看| 69久久夜色精品国产7777| 日韩毛片中文字幕| 成人国产精品久久久| 亚洲日本成人女熟在线观看| 亚洲美女性生活视频| 国产成人在线播放| 国产精品69久久久久| 国外视频精品毛片| 狠狠久久五月精品中文字幕| 久久久久久久久久久久久久久久久久av| 91社区国产高清| 国产视频久久久久久久| 国产91网红主播在线观看| 久久久久久久999| 欧美尺度大的性做爰视频| 在线播放国产一区中文字幕剧情欧美| 91成人性视频| 午夜免费日韩视频| 热久久美女精品天天吊色| 日韩在线免费视频观看| 亚洲少妇中文在线| 日韩av黄色在线观看| 成人观看高清在线观看免费| 欧美亚州一区二区三区| 国产精品久久久久免费a∨| 成人国产精品一区| 亚洲男人第一av网站| 日韩中文字幕免费视频| 欧美日本国产在线| 91在线观看免费观看| 国产精品久久电影观看| 97精品欧美一区二区三区| 国外色69视频在线观看| 亚洲娇小xxxx欧美娇小| 亚洲福利视频免费观看| 国产精品国产自产拍高清av水多| 曰本色欧美视频在线| 欧美另类在线播放| 国产日韩欧美在线看| 亚洲a∨日韩av高清在线观看| 久久免费高清视频| 国产视频自拍一区| 亚洲最大福利视频| 亚洲欧美另类国产| 久久久久久久一区二区三区| 国产一区二区三区在线播放免费观看| 日韩精品视频观看| 最好看的2019的中文字幕视频| 国产精品视频午夜| 欧美最猛性xxxxx免费| 亚洲欧洲视频在线| 欧美一区二区三区精品电影| 国产日韩av在线| 亚洲人成电影网站色xx| 2019中文字幕在线免费观看| 亚洲乱码国产乱码精品精天堂| 日韩av电影手机在线观看| 久久人人看视频| 色婷婷久久av| 日韩禁在线播放| 韩剧1988在线观看免费完整版| 欧美成人sm免费视频| 日韩av在线天堂网| 久久男人av资源网站| 亚洲欧美日韩国产中文| 成人免费淫片aa视频免费| 亚洲美女www午夜| 国产成人在线播放| 成人激情av在线| 亚洲第一偷拍网| 一本色道久久综合狠狠躁篇的优点| 亚洲大胆人体视频| 三级精品视频久久久久| 亚洲欧洲美洲在线综合| 欧美成人精品影院| 九九久久久久99精品| 69av在线播放| 欧美福利在线观看| 亚洲欧美国产高清va在线播| 性欧美xxxx视频在线观看| 欧美大片免费观看| 久久视频在线看| 欧美裸体xxxxx| 久久香蕉国产线看观看网| 欧美网站在线观看| 狠狠色狠狠色综合日日小说| 国产91成人video| 亚洲级视频在线观看免费1级| 日本韩国在线不卡| 精品国产91乱高清在线观看| 日韩欧美一区二区三区| 欧美成人免费观看| 欧美日韩电影在线观看| 日韩高清电影免费观看完整| 国产成人亚洲综合| 国产美女91呻吟求| 日本精品视频网站| 欧美性感美女h网站在线观看免费| 国产免费一区视频观看免费| 久久久久久com| 国内精品久久久久影院 日本资源| 欧美性理论片在线观看片免费| 国产欧美一区二区三区四区| 欧美一级视频在线观看| 91精品国产精品| 国产视频精品在线| 91情侣偷在线精品国产| 日韩av片永久免费网站| 亚洲成人精品久久| 国产精品jizz在线观看麻豆| 91老司机在线| 成人精品久久一区二区三区| 亚洲视频精品在线| 亚洲影视九九影院在线观看| 日韩影视在线观看| 日韩在线一区二区三区免费视频| 26uuu另类亚洲欧美日本老年| 欧美激情videoshd| 亚洲国产美女久久久久| 91sao在线观看国产| 欧美成人精品影院| 国产一区二区三区精品久久久| 亚洲美女久久久| 亚洲精品理论电影| 亚洲一级片在线看| 亚洲欧美国产精品久久久久久久| 欧美高清视频在线| 日韩在线观看电影|