PercentFrameLayout(百分比布局)的基本使用
前面的3中布局,LinearLayout、RelativeLayout、FrameLayout都是從Android1.0中就開始支持了,一直沿用到現在,可以說是滿足了絕大多數場景的界面設計需求。不過細心的你會發現,只有LinearLayout支持使用android:layout_weight屬性來實現按比例指定控件大小的功能,其他兩種布局都不支持比如說,如果想用RelativeLayout來實現兩個按鈕平分布局寬度的效果,則是比較困難的。
為此,Android引入了一種全新的布局方式來解決此問題-----百分比布局。在這種布局中,我們不再使用wrap_content、match_parent等方式來指定控件的大小,而是允許直接指定控件在布局中所占的百分比,這樣的話就可以輕松實現平分布局甚至是任意比例分割布局效果了。
由于LinearLayout本身已經支持按比例指定控件的大小了,因此百分比布局屬于新增布局,那么怎么才能做到讓新增布局在所有Android版本上都能使用呢?為此,Android團隊將百分比布局定義在了suppor庫當中,我們只需要在項目的build.gradle中添加百分比布局庫的依賴,就能保證百分比布局在Android所有系統版本上的兼容性了。
打開app/build.gradle文件,在dependencies閉包中添加以下內容:
implementation'com.android.support:percent:28.0.0'點擊右上方的Sync Now,然后gradle會開始進行同步,把我們新添加的百分比布局庫引入到項目當中。
接下來修改activity_main.xml中的代碼:
<?xml version="1.0" encoding="utf-8"?> <android.support.percent.PercentFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/btn1"android:layout_gravity="left|top"android:text="btn1"android:textAllCaps="false"app:layout_heightPercent="50%"app:layout_widthPercent="50%" /><Buttonandroid:id="@+id/btn2"android:layout_gravity="right|top"android:text="btn2"android:textAllCaps="false"app:layout_heightPercent="50%"app:layout_widthPercent="50%" /><Buttonandroid:id="@+id/btn3"android:layout_gravity="left|bottom"android:text="btn3"android:textAllCaps="false"app:layout_heightPercent="50%"app:layout_widthPercent="50%" /><Buttonandroid:id="@+id/btn4"android:layout_gravity="right|bottom"android:text="btn4"android:textAllCaps="false"app:layout_heightPercent="50%"app:layout_widthPercent="50%" /></android.support.percent.PercentFrameLayout>效果圖:
最外層我們使用了PercentFrameLayout,由于百分比布局并不是內置在系統SDK當中的,所以需要把完整的包路徑寫出來。然后還必須定義一個app的命名空間,這樣才能使用百分比布局的自定義屬性。
在PercentFrameLayout中我們定義了4個按鈕,
使用app:layout_widthPercent屬性將各個按鈕的寬度指定為布局的50%,
使用app:layout_heightPercent屬性將各個按鈕的高度指定為布局的50%。
這里之所以可以使用app前綴的屬性就是因為剛才定義了app的命名空間,當然我們一直能使用android前綴的屬性也是同樣的道理。
不過PercentFrameLayout還是會繼承FrameLayout的特性,即所有的控件默認都是擺放在布局的左上角。那么,為了讓這4個按鈕不會重疊,這里還是借助了layout_gravity屬性來分別將4個按鈕放置在布局的左上,右上,左下,右下4個位置。
?
?
總結
以上是生活随笔為你收集整理的PercentFrameLayout(百分比布局)的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FrameLayout(帧布局)的基本使
- 下一篇: ListView控件的基本使用(方式一: