Zasób układu
    
    
      
    
    
      
      Zadbaj o dobrą organizację dzięki kolekcji
    
    
      
      Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
    
  
  
      
    
  
  
  
  
  
    
    
    
  
  
    
    
    
Zasób szablonu definiuje architekturę interfejsu użytkownika w interfejsie Activity lub
elementu interfejsu.
- lokalizacja pliku:
res/layout/filename.xml(- )
Nazwa pliku jest używana jako identyfikator zasobu.
- skompilowany typ danych zasobu:
- Wskaźnik zasobu do zasobu View(lub podklasy)
- odniesienie do zasobu:
- 
W języku Java: R.layout.filename
 W pliku XML:@[package:]layout/filename
- składnia:
- 
<?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>Uwaga: elementem głównym może być
ViewGroup,Viewlub<merge>, ale możliwe, że będzie tylko
musi zawierać jeden element główny i musi on zawierać atrybutxmlns:androidz atrybutemandroidjak w poprzednim przykładzie składni.
 
- elementy:
- 
  
  - <ViewGroup>
- Kontener innych elementów View. Jest ich wiele
    różne rodzaje obiektówViewGroup. Każdy z nich pozwala
    określają różne układy elementów podrzędnych. Różne rodzajeViewGroupobiektów toLinearLayout,RelativeLayoutiFrameLayout.Nie zakładaj, że jakiekolwiek pochodne ViewGroupakceptuje widoki zagnieżdżone. Niektóre grupy widoków
    są implementacje klasyAdapterView, która określa
    jego dzieci tylko zAdapter.
 Atrybuty: 
        - android:id
- Identyfikator zasobu. Unikalna nazwa zasobu dla elementu, którą możesz podać
możesz użyć, aby uzyskać odniesienie do ViewGroupze swojej aplikacji. Więcej
informacje znajdziesz w sekcji Wartość identyfikatora android:id.
- android:layout_height
- Wymiar lub słowo kluczowe. Wymagany. Wysokość grupy podana jako
wartości wymiaru (lub
zasób wymiaru) lub słowo kluczowe
("match_parent"lub"wrap_content"). Aby dowiedzieć się więcej,
zobaczyć wartości dla parametrów android:layout_height oraz
android:layout_width.
- android:layout_width
- Wymiar lub słowo kluczowe. Wymagany. Szerokość grupy podana jako
wartości wymiaru (lub
zasób wymiaru) lub słowo kluczowe
("match_parent"lub"wrap_content"). Aby dowiedzieć się więcej,
zobaczyć wartości dla parametrów android:layout_height oraz
android:layout_width.
 ViewGroupklasa bazowa obsługuje więcej atrybutów, a każda implementacjaViewGroupAby zobaczyć wszystkie dostępne atrybuty,
      zapoznaj się z odpowiednią dokumentacją klasViewGroup,
na przykład plik XMLLinearLayout.
 
- <View>
- Pojedynczy komponent interfejsu nazywany widżetem. Inna
    rodzaje obiektów ViewtoTextView,ButtoniCheckBox.Atrybuty: 
        - android:id
- Identyfikator zasobu. Unikalna nazwa zasobu elementu, której możesz używać do
          uzyskać odniesienie do: Viewze swojej aplikacji. Więcej
informacje znajdziesz w sekcji Wartość identyfikatora android:id.
- android:layout_height
- Wymiar lub słowo kluczowe. Wymagany. Wysokość elementu podana w postaci
wartość wymiaru (albo
zasób wymiaru) lub słowo kluczowe
("match_parent"lub"wrap_content"). Aby dowiedzieć się więcej,
zobaczyć wartości dla parametrów android:layout_height oraz
android:layout_width.
- android:layout_width
- Wymiar lub słowo kluczowe. Wymagany. Szerokość elementu, podana w postaci
wartość wymiaru (albo
zasób wymiaru) lub słowo kluczowe
("match_parent"lub"wrap_content"). Aby dowiedzieć się więcej,
zobaczyć wartości dla parametrów android:layout_height oraz
android:layout_width.
 Viewklasa bazowa obsługuje więcej atrybutów, a każda implementacjaViewWięcej informacji znajdziesz w artykule Układy. Dla:
zestawienie wszystkich dostępnych atrybutów,
      zapoznaj się z odpowiednią dokumentacją, na przykład atrybutami XMLTextView.
 
- <requestFocus>
- Każdy element reprezentujący obiekt Viewmoże zawierać ten pusty element,
    co powoduje, że element nadrzędny skupia się na ekranie. Możesz mieć tylko jeden z tych elementów
    elementów na plik.
- <include>
- Zawiera plik układu w tym układzie.
      Atrybuty: 
        - layout
- Zasób układu. Wymagany. Odniesienie do układu
.
- android:id
- Identyfikator zasobu. Zastępuje identyfikator podany widokowi głównemu w uwzględnionym układzie.
        
- android:layout_height
- Wymiar lub słowo kluczowe. Zastępuje wysokość podaną widokowi głównemu w
zawartego układu. Działa tylko wtedy, gdy zadeklarowano również android:layout_width.
- android:layout_width
- Wymiar lub słowo kluczowe. Zastępuje szerokość podaną widokowi głównemu w
zawartego układu. Działa tylko wtedy, gdy zadeklarowano również android:layout_height.
 Element <include>może zawierać dowolne inne atrybuty układu, które są
są obsługiwane przez element główny w uwzględnionym układzie i zastępują te zdefiniowane
pierwiastek.
 Uwaga: jeśli chcesz zastąpić atrybuty układu za pomocą
      tagu <include>, musisz zastąpić obaandroid:layout_heightiandroid:layout_widthw kolejności
      inne atrybuty układu.
 Innym sposobem dołączenia układu jest użycie elementu ViewStub: lekkiej
który nie zajmuje przestrzeni układu, dopóki go nie nadasz. Zawiera on wtedy tag
pliku układu zdefiniowanego przez jego atrybutandroid:layout. Więcej informacji o korzystaniu zViewStubznajdziesz w sekcji Wczytywanie
  wyświetleń na żądanie.
 
- <merge>
- Alternatywny element główny, który nie jest narysowany w hierarchii układu. Użycie tego jako parametru
Element główny jest przydatny, gdy wiesz, że ten układ jest umieszczony w układzie
który zawiera już odpowiedni element nadrzędny View, który zawiera elementy podrzędne argumentu<merge>.Jest to szczególnie przydatne, gdy chcesz uwzględnić ten układ
w innym pliku układu, używając tagów <include>i
ten układ nie wymaga innego konteneraViewGroup. Więcej
informacje o scalaniu układów znajdziesz w artykule Ponowne używanie układów z elementem <include>.
 
 Wartość w polu android:idJako wartości identyfikatora zazwyczaj używa się takiej składni składni: "@+id/name", jak pokazano w tym przykładzie. 
symbol plusa (+) oznacza, że jest to nowy identyfikator zasobu, a narzędzieaapttworzy
nową liczbę całkowitą zasobu w klasieR.java, jeśli jeszcze nie istnieje.
 <TextView android:id="@+id/nameTextbox"/> Nazwa nameTextboxjest teraz identyfikatorem zasobu dołączonym do tego elementu. Następnie możesz:
odwołują się doTextView, z którym identyfikator jest powiązany w Javie:
 Kotlinval textView: TextView? = findViewById(R.id.nameTextbox) JavaTextView textView = findViewById(R.id.nameTextbox); 
Ten kod zwraca obiekt TextView.
 Jeśli jednak masz już zdefiniowany zasób identyfikatora, ale nie jest on
już używanego, możesz zastosować ten identyfikator do elementu View, wykluczając
plus w wartościandroid:id.
 Wartości atrybutów android:layout_height i
android:layout_width,Wartości wysokości i szerokości są wyrażone za pomocą dowolnego z
  wymiar
  jednostki obsługiwane przez Androida (px, dp, sp, pt, in, mm) lub z tymi słowami kluczowymi: | Wartość | Opis | 
|---|
 
      | match_parent | Ustawia wymiar zgodny z wymiarem elementu nadrzędnego. Dodano w interfejsie API poziomu 8 do:
wycofaj usługę fill_parent. |  
      | wrap_content | Ustawia wymiar tylko na rozmiar wymagany do dopasowania zawartości tego elementu. |  
 Elementy widoku niestandardowegoMożesz tworzyć niestandardowe ViewiViewGroupi stosują je do układu w taki sam sposób jak w układzie standardowym.
. Możesz też określić atrybuty obsługiwane w elemencie XML. Aby dowiedzieć się więcej,
Więcej informacji znajdziesz w artykule o tworzeniu komponentów widoku niestandardowego.
 
- przykład:
- Plik XML zapisany o 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>Ten kod aplikacji wczytuje układ dla Activityw
    MetodaonCreate():
 
- 
Kotlinpublic override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_activity)
}Javapublic void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
}
- zobacz też:
- 
 
    
  
  
    
      
      
    
    
      
    
    
  
       
    
    
      
    
  
  
  Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
  Ostatnia aktualizacja: 2025-07-27 UTC.
  
  
  
    
      [[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[]]