Używaj ponownie układów z operatorem

Wypróbuj tworzenie wiadomości
Jetpack Compose to zalecany zestaw narzędzi interfejsu na Androida. Dowiedz się, jak pracować z układami w Compose.

Chociaż Android oferuje różne widżety z małymi, interaktywnymi elementami wielokrotnego użytku, może być konieczne ponowne wykorzystanie większych komponentów, które wymagają specjalnego układu. Aby efektywnie używać kompletnych układów, użyj tagów i , aby umieszczać jeden układ wewnątrz drugiego.

Dzięki temu możesz tworzyć złożone układy, np. panel z przyciskami „Tak” i „Nie” lub niestandardowy pasek postępu z tekstem opisowym. Oznacza to, że możesz wyodrębnić dowolne elementy aplikacji, które są wspólne dla wielu układów, zarządzać nimi osobno i umieszczać je w każdym układzie. Chociaż możesz tworzyć poszczególne komponenty UI, pisząc niestandardowy kodView, łatwiej jest to zrobić, używając pliku układu.

Tworzenie układu do wielokrotnego użytku

Zacznij od utworzenia nowego pliku XML i zdefiniowania układu, który chcesz ponownie wykorzystać. Oto przykład układu, który definiuje pasek tytułu do uwzględnienia w każdej aktywności (titlebar.xml):



    

Element główny View musi być dokładnie taki sam, jak ma być wyświetlany w każdym układzie, w którym zamierzasz dodać ten układ.

Używanie tagu

W układzie, w którym chcesz dodać komponent wielokrotnego użytku, dodaj tag . Oto na przykład układ zawierający pasek tytułu z poprzedniego przykładu:



    

    
    ...

Możesz też zastąpić wszystkie parametry układu (wszystkie atrybuty android:layout_*) widoku wyższego poziomu uwzględnionego układu, podając je w tagu . Przykład:


Jeśli jednak chcesz zastąpić atrybuty układu za pomocą tagu , zastąp też atrybuty android:layout_height i android:layout_width, aby inne atrybuty układu zaczęły obowiązywać.

Używanie tagu

Tag pomaga wyeliminować zbędne grupy widoków w hierarchii widoków, gdy jeden układ jest zawarty w innym. Jednym z przypadków użycia funkcji jest implementacja widoku niestandardowego przez rozszerzenie widoku ViewGroup.

Jeśli na przykład układ główny to układ pionowy LinearLayout, w którym 2 kolejne widoki można ponownie wykorzystać w kilku układach, to układ wielokrotnego użytku, w którym umieszczasz te 2 widoki, wymaga własnego widoku wyższego poziomu. Jednak użycie innego elementu LinearLayout jako elementu głównego w przypadku układu wielokrotnego użytku spowoduje utworzenie pionowego elementu LinearLayout wewnątrz pionowego elementu LinearLayout. Zagnieżdżony element LinearLayout nie pełni żadnej funkcji i spowalnia działanie interfejsu.

Zamiast tego możesz rozszerzyć LinearLayout, aby utworzyć widok niestandardowy, i użyć pliku XML układu, aby opisać widoki podrzędne. Najwyższy tag w pliku XML to , a nie LinearLayout, jak w tym przykładzie:



    

Gdy umieścisz ten układ w innym układzie za pomocą tagu , system zignoruje element i umieści 2 przyciski bezpośrednio w układzie zamiast tagu .

Więcej informacji o  znajdziesz w artykule Zasoby układu.