Jak dołączyć układ do układu w systemie Android?
Tworzę wspólny układ. Chcę umieścić ten układ na innej stronie.
android
android-layout
mohan
źródło
źródło
Odpowiedzi:
Edycja: Jak w komentarzu, który słusznie poprosił o więcej informacji. Użyj
include
tagu<include android:layout_width="match_parent" android:layout_height="wrap_content" layout="@layout/yourlayout" />
aby uwzględnić układ, którego chcesz ponownie użyć.
Sprawdź ten link ...
źródło
<include />
tagu, jednak możesz to zrobić za pomocą kodu java. zobacz odpowiedź Phileo99 poniżej, aby dowiedzieć się, jak uzyskać odniesienie do dołączonego układu. a potem możesz zmienić jego zawartość.Zauważ, że jeśli umieścisz
android:id...
w<include />
tagu, nadpisuje on każdy identyfikator zdefiniowany w dołączonym układzie. Na przykład:<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>
Następnie możesz odwołać się do tego zawartego układu w kodzie w następujący sposób:
źródło
Użyj
<include />
tagu.<include android:id="@+id/some_id_if_needed" layout="@layout/some_layout"/>
Przeczytaj również artykuły o tworzeniu składników interfejsu użytkownika wielokrotnego użytku i scalaniu układów .
źródło
Spróbuj tego
<include android:id="@+id/OnlineOffline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" layout="@layout/YourLayoutName" />
źródło
Z oficjalnych dokumentów o ponownym użyciu układów
Oto mój plik header.xml , którego mogę użyć ponownie za pomocą tagu 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>
Nie, używam tag w XML, aby dodać kolejny układ z innego pliku XML.
<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>
źródło
Because I want to reuse a ProgressBar
jaki problem nadchodzi?Dowiedz się więcej, korzystając z tego linku 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>
Powyższy układ możesz wykorzystać w innej aktywności za pomocą
<?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>
źródło