Android app 詳解四種基本布局

2021-09-12 13:54:31 字數 1898 閱讀 6333

乙個豐富的介面總是要由很多個控制項組成的,那我們如何才能讓各個控制項都有條不紊地擺放在介面上,而不是亂糟糟的呢?這就需要借助布局來實現了。布局是一種可用於放置很多控制項的容器,它可以按照一定的規律調整內部控制項的位置,從而編寫出精美的介面。當然,布局的內部除了放置控制項外,也可以放置布局,通過多層布局的巢狀,我們就能夠完成一些比較複雜的介面實現,下面示意圖很好地展示了它們之間的關係。

(2)水平方向上:

2.relativelayout(相對布局)

relativelayout 又稱作相對布局,也是一種非常常用的布局。和 linearlayout 的排列規則不同,relativelayout 顯得更加隨意一些,它可以通過相對定位的方式讓控制項出現在布局的任何位置。

framelayout 相比於前面兩種布局就簡單太多了,因此它的應用場景也少了很多。這種布局沒有任何的定位方式,所有的控制項都會擺放在布局的左上角。

4.tablelayout(**布局)

tablelayout 允許我們使用**的方式來排列控制項,這種布局也不是很常用,你只需要了解一下它的基本用法就可以了。既然是**,那就一定會有行和列,在設計**時我們盡量應該讓每一行都擁有相同的列數,這樣的**也是最簡單的。不過有時候事情並非總會順從我們的心意,當**的某行一定要有不相等的列數時,就需要通過合併單元格的方式來應對。

在 tablelayout 中每加入乙個 tablerow就表示在**中新增了一行,然後在tablerow中每加入乙個控制項,就表示在該行中加入了一列,tablerow中的控制項是不能指定寬度的。使android:layout_span="2"佔據兩列的空間,就可以保證**結構的合理性了。因為在tablerow中我們無法指定控制項的寬度。這時使用android:stretchcolumns屬性就可以很好地解決這個問題,它允許將tablelayout中的某一列進行拉伸,以達到自動適應螢幕寬度的作用。

jsp四種屬性詳解

四種屬性範圍 1 page pagecontext 在乙個頁面中儲存屬性,跳轉之後無效 則乙個 page 範圍中的內容只能儲存在乙個頁面中 2 request 只在一次請求中儲存,伺服器跳轉後依然有效。request 屬性範圍表示的是在伺服器跳轉之後,所有設定的內容依然會儲存下來 頁面跳轉之後,可以...

golang gRPC四種模式詳解

本專案把四種模式都寫成 供讀者查閱。具體的詳解可以參考 注釋,在此只講解grpc的golang實現中遇到的問題和總結相應的經驗。1,簡單模式 簡單模式只是使用引數和返回值作為伺服器與客戶端傳遞資料的方式,最簡單。2,客戶端流模式 即從客戶端往伺服器端傳送資料使用的是流,即伺服器端的引數為流型別,然而...

java四種內部類詳解

一般來說,有4中內部類 常規內部類 靜態內部類 區域性內部類 匿名內部類。一.常規內部類 常規內部類沒有用static修飾且定義在在外部類類體中。1.常規內部類中的方法可以直接使用外部類的例項變數和例項方法。2.在常規內部類中可以直接用內部類建立物件 3.如下 public class myoute...