版面配置資源可定義 Activity
中的 UI 架構,或 UI 中元件的架構。
- 檔案位置:
res/layout/filename.xml
系統會把檔案名稱當做資源 ID。- 編譯資源資料類型:
View
(或子類別) 資源的資源指標。- 資源參照:
-
Java:
R.layout.filename
XML:@[package:]layout/filename
- 語法:
-
<?xml version="1.0" encoding="utf-8"?> <ViewGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [ViewGroup-specific attributes] > <View android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [View-specific attributes] > <requestFocus/> </View> <ViewGroup > <View /> </ViewGroup> <include layout="@layout/layout_resource"/> </ViewGroup>
注意:根元素可以是
ViewGroup
、View
或<merge>
元素,但全部只能有一個根元素,而且此根元素必須包含具備android
命名空間的xmlns:android
屬性,如上述語法範例所示。 - 元素:
-
android:id 的值
通常 ID 值會使用
"@+id/name"
這類語法格式,如以下範例所示。加號 (+
) 表示這是新的資源 ID,如果不存在資源整數,aapt
工具會在R.java
類別中建立新的資源整數。<TextView android:id="@+id/nameTextbox"/>
nameTextbox
名稱現在是附加至此元素的資源 ID。接下來,您就可以在 Java 中參照與此 ID 相關聯的TextView
:Kotlin
val textView: TextView? = findViewById(R.id.nameTextbox)
Java
TextView textView = findViewById(R.id.nameTextbox);
此程式碼會傳回
TextView
物件。不過,如果您已定義 ID 資源,且該 ID 資源尚未使用,那麼只要去掉
android:id
值中的加號,即可將該 ID 套用至View
元素。android:layout_height 和 android:layout_width 的值
高度和寬度值會以 Android 支援的任一尺寸單位 (px、dp、sp、pt、in、mm) 或下列關鍵字表示:
值 說明 match_parent
將尺寸設為與父項元素的尺寸一致。已在 API 級別 8 中新增,取代 fill_parent
。wrap_content
將尺寸設為符合此元素內容所需的大小。 自訂檢視畫面元素
您可以建立自訂的
View
和ViewGroup
元素,然後按照套用標準版面配置元素的做法套用至版面配置中。您也可以指定 XML 元素中支援的屬性。詳情請參閱「建立自訂檢視區塊元件」。 - 例如:
- XML 檔案儲存在
res/layout/main_activity.xml
:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /> </LinearLayout>
此應用程式程式碼會在
onCreate()
方法中載入Activity
的版面配置: -
Kotlin
public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) }
Java
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); }
- 另請參閱: