Android'de düzen içine düzen nasıl dahil edilir?
Ortak bir düzen oluşturuyorum. Bu düzeni başka bir sayfaya eklemek istiyorum.
Yanıtlar:
Düzenleme: Bir yorumda olduğu gibi haklı olarak burada biraz daha bilgi istenir. includeEtiketi kullanın
<include
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/yourlayout" />
yeniden kullanmak istediğiniz düzeni eklemek için.
Bu bağlantıya göz atın ...
<include />etiketin içinde yapıp yapamayacağınızdan emin değilim , ancak java kodunu kullanarak yapabilirsiniz. bkz aşağıda Phileo99 yanıtını dahil düzeni bir başvuru nasıl bilmek. ve sonra içeriğini değiştirebilirsiniz.
Eğer eklerseniz o Not android:id...içine <include />etiketi, o dahil layout'ta tanımlandı ne olursa olsun kimliği geçersiz kılar. Örneğin:
<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>
Ardından, bu dahil edilen düzene kodda aşağıdaki gibi başvurursunuz:
View includedLayout = findViewById(R.id.some_id_if_needed);
Button insideTheIncludedLayout = (Button)includedLayout.findViewById(R.id.button1);
<include />Etiketi kullanın .
<include
android:id="@+id/some_id_if_needed"
layout="@layout/some_layout"/>
Ayrıca Yeniden Kullanılabilir UI Bileşenleri Oluşturma ve Düzenleri Birleştirme makalelerini okuyun.
Düzenlerin Yeniden Kullanılmasıyla ilgili Resmi belgelerden
Android, küçük ve yeniden kullanılabilir etkileşimli öğeler sağlamak için çeşitli pencere öğeleri sunsa da, özel bir düzen gerektiren daha büyük bileşenleri yeniden kullanmanız gerekebilir. Tüm mizanpajları verimli bir şekilde yeniden kullanmak için, mevcut mizanpajın içine başka bir mizanpaj eklemek için etiketini kullanabilirsiniz.
İşte benim olduğu header.xml i kullanarak yeniden kullanabilirsiniz dosya etiketi dahil
<?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>
Hayır kullanıyorum başka bir XML dosyasından başka bir düzen eklemek için XML'de etiketleyin.
<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 ProgressBarne sorun geliyor?
Bu bağlantıyı kullanarak Daha Fazla Bilgi Edinin 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>
Blok alıntı
Düzenin üstünde, diğer aktivitelerde kullanabileceğiniz
<?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>