- Android基礎
- Android - 首頁
- Android - 概述
- Android - 環境搭建
- Android - 架構
- Android - 應用元件
- Android - HelloWorld示例
- Android - 資源
- Android - 活動 (Activities)
- Android - 服務 (Services)
- Android - 廣播接收器 (Broadcast Receivers)
- Android - 內容提供者 (Content Providers)
- Android - 片段 (Fragments)
- Android - 意圖/過濾器 (Intents/Filters)
- Android - 使用者介面
- Android - UI佈局
- Android - UI控制元件
- Android - 事件處理
- Android - 樣式和主題
- Android - 自定義元件
- Android高階概念
- Android - 拖放
- Android - 通知
- 基於位置的服務
- Android - 傳送郵件
- Android - 傳送簡訊
- Android - 電話呼叫
- 釋出Android應用
- Android實用示例
- Android - 警報對話方塊
- Android - 動畫
- Android - 音訊捕獲
- Android - AudioManager
- Android - 自動完成
- Android - 最佳實踐
- Android - 藍牙
- Android - 相機
- Android - 剪貼簿
- Android - 自定義字型
- Android - 資料備份
- Android - 開發者工具
- Android - 模擬器
- Android - Facebook整合
- Android - 手勢
- Android - 谷歌地圖
- Android - 圖片特效
- Android - ImageSwitcher
- Android - 內部儲存
- Android - JetPlayer
- Android - JSON解析器
- Android - Linkedin整合
- Android - 載入動畫
- Android - 本地化
- Android - 登入介面
- Android - MediaPlayer
- Android - 多點觸控
- Android - 導航
- Android - 網路連線
- Android - NFC指南
- Android - PHP/MySQL
- Android - 圓形進度條
- Android - ProgressBar
- Android - 推送通知
- Android - RenderScript
- Android - RSS閱讀器
- Android - 螢幕錄製
- Android - SDK管理器
- Android - 感測器
- Android - 會話管理
- Android - Shared Preferences
- Android - SIP協議
- Android - 拼寫檢查器
- Android - SQLite資料庫
- Android - 支援庫
- Android - 測試
- Android - 文字轉語音
- Android - TextureView
- Android - Twitter整合
- Android - UI設計
- Android - UI模式
- Android - UI測試
- Android - WebView佈局
- Android - Wi-Fi
- Android - 小部件
- Android - XML解析器
- Android實用資源
- Android - 問答
- Android - 資源
- Android - 討論
Android相對佈局
Android RelativeLayout允許您指定子檢視相對於彼此的定位方式。每個檢視的位置可以相對於兄弟元素或相對於父元素來指定。
相對佈局
RelativeLayout屬性
以下是RelativeLayout特有的重要屬性:
| 序號 | 屬性及描述 |
|---|---|
| 1 |
android:id 這是唯一標識佈局的ID。 |
| 2 |
android:gravity 這指定了物件應如何在其內容上定位,在X軸和Y軸上。可能的值包括頂部、底部、左側、右側、居中、垂直居中、水平居中等。 |
| 3 |
android:ignoreGravity 這指示哪個檢視不受重力影響。 |
使用RelativeLayout,您可以透過右邊界對齊兩個元素,或者使一個元素位於另一個元素的下方,居中在螢幕上,居中左側等等。預設情況下,所有子檢視都繪製在佈局的左上角,因此您必須使用RelativeLayout.LayoutParams提供的各種佈局屬性和以下列出的一些重要屬性來定義每個檢視的位置:
| 序號 | 屬性及描述 |
|---|---|
| 1 |
android:layout_above 將此檢視的底部邊緣置於給定錨檢視ID的上方,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 2 |
android:layout_alignBottom 使此檢視的底部邊緣與給定錨檢視ID的底部邊緣匹配,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 3 |
android:layout_alignLeft 使此檢視的左邊緣與給定錨檢視ID的左邊緣匹配,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 4 |
android:layout_alignParentBottom 如果為true,則使此檢視的底部邊緣與父級的底部邊緣匹配。必須是布林值,“true”或“false”。 |
| 5 |
android:layout_alignParentEnd 如果為true,則使此檢視的末端邊緣與父級的末端邊緣匹配。必須是布林值,“true”或“false”。 |
| 6 |
android:layout_alignParentLeft 如果為true,則使此檢視的左邊緣與父級的左邊緣匹配。必須是布林值,“true”或“false”。 |
| 7 |
android:layout_alignParentRight 如果為true,則使此檢視的右邊緣與父級的右邊緣匹配。必須是布林值,“true”或“false”。 |
| 8 |
android:layout_alignParentStart 如果為true,則使此檢視的起始邊緣與父級的起始邊緣匹配。必須是布林值,“true”或“false”。 |
| 9 |
android:layout_alignParentTop 如果為true,則使此檢視的頂部邊緣與父級的頂部邊緣匹配。必須是布林值,“true”或“false”。 |
| 10 |
android:layout_alignRight 使此檢視的右邊緣與給定錨檢視ID的右邊緣匹配,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 11 |
android:layout_alignStart 使此檢視的起始邊緣與給定錨檢視ID的起始邊緣匹配,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 12 |
android:layout_alignTop 使此檢視的頂部邊緣與給定錨檢視ID的頂部邊緣匹配,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 13 |
android:layout_below 將此檢視的頂部邊緣置於給定錨檢視ID的下方,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 14 |
android:layout_centerHorizontal 如果為true,則在此檢視的父級內水平居中此子檢視。必須是布林值,“true”或“false”。 |
| 15 |
android:layout_centerInParent 如果為true,則在此檢視的父級內水平和垂直居中此子檢視。必須是布林值,“true”或“false”。 |
| 16 |
android:layout_centerVertical 如果為true,則在此檢視的父級內垂直居中此子檢視。必須是布林值,“true”或“false”。 |
| 17 |
android:layout_toEndOf 將此檢視的起始邊緣定位到給定錨檢視ID的末尾,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 18 |
android:layout_toLeftOf 將此檢視的右邊緣定位到給定錨檢視ID的左側,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 19 |
android:layout_toRightOf 將此檢視的左邊緣定位到給定錨檢視ID的右側,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
| 20 |
android:layout_toStartOf 將此檢視的末端邊緣定位到給定錨檢視ID的起始位置,並且必須是對另一個資源的引用,格式為“@[+][package:]type:name”。 |
示例
本例將引導您完成簡單的步驟,展示如何使用相對佈局建立您自己的Android應用程式。請按照以下步驟修改我們在“HelloWorld示例”章節中建立的Android應用程式:
| 步驟 | 描述 |
|---|---|
| 1 | 您將使用Android Studio IDE建立一個Android應用程式,並在com.example.demo包下將其命名為demo,如“HelloWorld示例”章節中所述。 |
| 2 | 修改res/layout/activity_main.xml檔案的預設內容,以在相對佈局中包含一些小部件。 |
| 3 | 在res/values/strings.xml檔案中定義所需的常量。 |
| 4 | 執行應用程式以啟動Android模擬器並驗證對應用程式所做更改的結果。 |
以下是修改後的主活動檔案src/com.example.demo/MainActivity.java的內容。此檔案可以包含每個基本生命週期方法。
package com.example.demo;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
以下是res/layout/activity_main.xml檔案的內容:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp" >
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/reminder" />
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentStart="true"
android:layout_below="@+id/name">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button2" />
</LinearLayout>
</RelativeLayout>
以下是res/values/strings.xml檔案的內容,用於定義兩個新的常量:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="action_settings">Settings</string> <string name="reminder">Enter your name</string> </resources>
讓我們嘗試執行我們剛剛修改的Hello World!應用程式。我假設您在進行環境設定時已經建立了AVD。要從Android Studio執行應用程式,請開啟專案的活動檔案之一,然後單擊工具欄中的執行
圖示。Android Studio將應用程式安裝到您的AVD並啟動它,如果您的設定和應用程式一切正常,它將顯示以下模擬器視窗:
