Bagaimana cara memasukkan tata letak di dalam tata letak di Android?
Saya membuat tata letak umum. Saya ingin memasukkan tata letak itu di halaman lain.
Jawaban:
Edit: Seperti dalam komentar yang diminta di sini, beberapa informasi lebih lanjut. Gunakan includetag
<include
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/yourlayout" />
untuk menyertakan tata letak yang ingin Anda gunakan kembali.
Lihat tautan ini ...
<include />tag, namun Anda dapat melakukannya dengan menggunakan kode java. lihat jawaban Phileo99 di bawah ini untuk mengetahui bagaimana mendapatkan referensi ke layout yang disertakan. dan kemudian Anda dapat mengubah isinya.
Perhatikan bahwa jika Anda menyertakannya android:id...ke dalam <include />tag, itu akan menimpa id apa pun yang didefinisikan di dalam tata letak yang disertakan. Sebagai contoh:
<include
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/some_id_if_needed"
layout="@layout/yourlayout" />
yourlayout.xml:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/some_other_id">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/button1" />
</LinearLayout>
Maka Anda akan mereferensikan tata letak yang disertakan ini dalam kode sebagai berikut:
View includedLayout = findViewById(R.id.some_id_if_needed);
Button insideTheIncludedLayout = (Button)includedLayout.findViewById(R.id.button1);
Gunakan <include />tag.
<include
android:id="@+id/some_id_if_needed"
layout="@layout/some_layout"/>
Baca juga artikel Membuat Komponen UI yang Dapat Digunakan Kembali dan Menggabungkan Tata Letak .
Dari dokumen Resmi tentang Menggunakan Kembali Tata Letak
Meskipun Android menawarkan berbagai widget untuk menyediakan elemen interaktif yang kecil dan dapat digunakan kembali, Anda mungkin juga perlu menggunakan kembali komponen yang lebih besar yang memerlukan tata letak khusus. Untuk menggunakan kembali tata letak lengkap secara efisien, Anda dapat menggunakan tag untuk menyematkan tata letak lain di dalam tata letak saat ini.
Ini adalah file header.xml saya yang dapat saya gunakan kembali menggunakan tag include
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:gravity="center"
android:text="@string/app_name"
android:textColor="#000000" />
</RelativeLayout>
Tidak, saya menggunakan tag dalam XML untuk menambahkan tata letak lain dari file XML lain.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#f0f0f0" >
<include
android:id="@+id/header_VIEW"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/header" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:background="#ffffff"
android:orientation="vertical"
android:padding="5dp" >
</LinearLayout>
Because I want to reuse a ProgressBarmasalah apa yang akan datang?
Pelajari Lebih Lanjut Menggunakan tautan ini https://developer.android.com/training/improving-layouts/reusing-layouts.html
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Game_logic">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:id="@+id/text1"
android:textStyle="bold"
tools:text="Player " />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:layout_marginLeft="20dp"
android:id="@+id/text2"
tools:text="Player 2" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Blockquote
Tata letak di atas Anda dapat digunakan dalam aktivitas lain menggunakan
<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SinglePlayer">
<include layout="@layout/activity_game_logic"/>
</androidx.constraintlayout.widget.ConstraintLayout>