前言
上一期我們給大家講解了LinearLayout,這一期我們為大家講解一下FrameLayout(幀布局)的使用,相較于其他布局,FrameLayout可以說的上是最簡單的一個,并且其使用范圍相對來說也相對較小,但是也是Android中的六大布局之一,面試的時候還是會碰到的,所以讓我們趕緊開始學習吧~
簡介
在FrameLayout中,這個布局直接在屏幕上開辟出一塊空白的區域,所有添加到這個布局中的視圖都是以層疊的方式顯示,而它會把這些試圖默認放到這塊區域的左上角,第一個添加到布局中視圖顯示在最底層,最后一個被放在最頂層。上一層的視圖會覆蓋下一層的視圖,因此該布局類似于堆棧布局,這就是FrameLayout為什么被使用較少的原因。
1.常用屬性
FrameLayout的常用屬性很少就兩個
兩個屬性:
前景圖像:永遠處于幀布局最上面,直接面對用戶的圖像,就是不會被覆蓋的圖片。
可能有的小伙伴對這個解釋比較模糊,那么我們來用實際操作讓大家直觀的感受一下到底是什么意思吧!
上圖中可以看到background顧名思義就是設置背景,那么前景是什么,相信小伙伴們已經有點概念了,讓我們繼續往下看吧
相信小伙伴們看完上圖已經徹底明白了什么是前景圖像,同樣的代碼,只是將background變成foreground,可以明確的看出圖1中HelloWord依然可以看到,但是在圖2中,已經被擋住。我們可以這樣簡單的去理解,foreground其實就是一本書的封面,它把書中的內容全部遮蓋住了。
2.FrameLayout如何設置其子視圖(例如TextView)的位置?
通過layout_gravity設定值,再配合layout_marginTop,layout_marginLeft來設置位置。
舉例,有4個TextView:第一層為公司,第二層為辦公室,第三層為工位,第四層是程序猿。若不設置TextView的位置,則此四個文字都將默顯示在左上角,并且公司在最下面,程序猿在最上面。要實現圖中四幅圖的位置效果,則分別對應以下設置:
(1)第一層公司 :android: layout_gravity="center"
(2) 第二層辦公室 :android: layout_gravity = "center" android:layout_marginTop="-150dp" (注意:此處是負數,因為 android:layout_gravity = "center" 表示水平和垂直方向上居中,基準線為視圖水平和垂直方向的中點,因為辦公室在基準線的上方向(負方向),所以為負數)
(3)第三層工位 :android:layout_gravity="top" android:layout_marginTop="40dp" android:layout_marginLeft="40dp' (注意:android:layout_gravity="top" 表示垂直方向頂端對齊,而水平方向是默認左對齊)
(4)第四層程序猿 : android:layout_gravity="center" android:layout_marginTop="80dp" (對應第二層辦公室的分析,就很容易理解,程序猿在基準線下方向(正方向),所以為負數。并且注意:此處的基準線不是屏幕的最上方,而是水平和垂直方向各自的中心線)
最終效果圖為:
結語
關于FrameLayout的介紹就到這里啦,闊能部分小伙伴覺得今天的文章內容不是太多,主要是因為FrameLayout在實際項目中應用到的場景非常之少,所以大家簡單了解一哈就好了。但是?。?!小伙伴們跟著我們一起學習已經有一周時間,相信肯定還有一小部分同學沒有創建自己的第一個項目,所以期望你們趕緊行動起來,將這一周的精彩內容都寫入你的第一個個人demo中吧。已經跟著我們一直在實戰的小伙伴,希望你們也可以回顧一下之前文章,子曰:學而時習之,不亦說乎?~
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答