天天看點

Android Studio學習筆記一、布局管理持續更新

Android Studio學習筆記

  • 一、布局管理
    • 1、線性布局(LinearLayout )
      • (1)LinearLayout的主要屬性
    • 2、幀布局(FrameLayout)
      • (1)FrameLayout的主要屬性
        • 1.android:layout_gravity
        • 2.android:visibility
  • 持續更新

一、布局管理

1、線性布局(LinearLayout )

1.主要以水準或垂直排列來顯示界面中的控件。

(1)當控件水準排列時,顯示順序依次為從左到右。

Android Studio學習筆記一、布局管理持續更新

(2)當控件垂直排列時,顯示順序依次為從上到下。

Android Studio學習筆記一、布局管理持續更新

(3)線性布局中,每行或每列中隻允許有一個子視圖或控件。

(1)LinearLayout的主要屬性

屬性 概述
android:gravity 設定控件内部的顯示設定
android:orientation 設定控件内部的排列方法。horizontal(預設值)表示水準排列/vertical表示垂直排列
android:layout_weight 設定内部控件在LinearLayout中所占的權重

關于權重的解釋:

現在分别設定兩個控件Button1,Button2,并且設定兩個控件的權重(layout_weight)均為“1”。

代碼如下:

<Button
        android:id="@+id/button"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:text="Button1" />
<Button
        android:id="@+id/button"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:text="Button2" />
        
           

顯示效果:兩個Button均分高度距離。(垂直排列為例,水準同類)

Android Studio學習筆記一、布局管理持續更新

現在我将Button1的權重更改為"3",其他不變。

代碼如下:

<Button
        android:id="@+id/button"
        android:layout_weight="3"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:text="Button1" />
<Button
        android:id="@+id/button"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
           

顯示效果:Button1占據了高度的3/4

Android Studio學習筆記一、布局管理持續更新

結論:

所謂權重即控件在視圖中所占的比重。

2、幀布局(FrameLayout)

幀布局是一種特殊的布局,它以層疊的方式顯示布局中的多個控件。

(1)FrameLayout的主要屬性

1.android:layout_gravity

此屬性控制控件在FrameLayout中的位置。

其屬性可以設定為:

屬性值 概述
top 控件位于布局頂端
bottom 控件位于布局底端
left 控件位于布局左側
right 控件位于布局右側
center 控件位于布局中心
center_vertical 控件位于垂直方向上的中心位置
center_horizontal 控件位于水準方向上的中心位置

以上屬性均以一個Button控件為例:

android:layout_gravity="top"

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button14"
        android:layout_gravity="top"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</FrameLayout>
           
Android Studio學習筆記一、布局管理持續更新

android:layout_gravity="center"

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button14"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</FrameLayout>
           
Android Studio學習筆記一、布局管理持續更新

android:layout_gravity="bottom

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button14"
        android:layout_gravity="bottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</FrameLayout>
           
Android Studio學習筆記一、布局管理持續更新

android:layout_gravity=“left”

......
        android:layout_gravity="left"
        ......
           
Android Studio學習筆記一、布局管理持續更新

android:layout_gravity=“right”

......
        android:layout_gravity="right"
        ......
           
Android Studio學習筆記一、布局管理持續更新

android:layout_gravity=“center”

......
        android:layout_gravity="center"
        ......
           
Android Studio學習筆記一、布局管理持續更新

android:layout_gravity=“center_vertical”

......
        android:layout_gravity="center_vertical"
        ......
           
Android Studio學習筆記一、布局管理持續更新

android:layout_gravity=“center_horizontal”

......
        android:layout_gravity="center_horizontal"
        ......
           
Android Studio學習筆記一、布局管理持續更新

此外,我們對比android:layout_gravity和android:gravity兩者之間的差別:

android:layout_gravity android:gravity
是對控件本身來說的 是相對于包含該控件的父控件來說的
用來設定控件本身的内容應該顯示在控件的什麼位置 設定該控件在父控件的什麼位置
預設值是左側

下面示例是對于android:gravity的操作:

android:gravity=“center”

......
    <Button
        android:id="@+id/button14"
        android:layout_gravity="center"
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
......
           
Android Studio學習筆記一、布局管理持續更新

android:gravity=“right”

......
        android:gravity="right"
......
           
Android Studio學習筆記一、布局管理持續更新

android:gravity=“left”

......
        android:gravity="left"
......
           
Android Studio學習筆記一、布局管理持續更新

結論:BUTTON在按鈕控件中移動。

2.android:visibility

屬性值 概述
visiable 可見,顯示到頁面
invisiable 不可見,但是依然占用位
gone 隐藏,不可見并且不占用位置

持續更新