Come impostare diversi layout in 1 file XML in Android
-
26-09-2019 - |
Domanda
Ciao amici ho impostato il mio layout attraverso TabLayout all'interno LinearLayout ma ancora il mio tasto, alla fine, non potevano essere impostato correttamente come TabLayout divide tutti i campi in numero di colonne in modo chiunque può aiuto come impostare 2 layout in un file XML mezzi tutti i campi nella TabLayout e rimasti entrambi i pulsanti Login e registe nel layout lineare partecipanti ore qualche altro modo che possano impostare correttamente.
Grazie in anticipo.
Layout
Nome utente! EditTextBox
Password! EditTextBox
Login! Registrati
Tasto! Pulsante
Voglio il mio layout al precedente formato così ho usato TabLaout ma in quel caso sta causando vista di mio tasto così come si sta allungando un pulsante che altro uno come EditText è più grande di TextView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="26sp"
android:text="@string/login_text"/>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableRow>
<TextView
android:layout_width="120px"
android:text="User name"
/>
<EditText
android:id="@+id/txtUserName"
android:singleLine="true"
android:maxLength="20"
android:width="195px"
/>
</TableRow>
<TableRow>
<TextView
android:layout_width="120px"
android:text="Password"
/>
<EditText
android:id="@+id/txtPassword"
android:width="195px"
android:maxLength="20"
android:singleLine="true"
android:password="true"
/>
</TableRow>
<TableRow>
<TextView />
<CheckBox android:id="@+id/chkRememberPassword"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Remember Password"
/>
</TableRow>
<TableRow>
<Button
android:id="@+id/buttonRegister"
android:text="Register"
android:layout_width="124px"
android:layout_height="wrap_content"
android:layout_below="@+id/chkRememberPassword"
android:layout_alignRight="@+id/chkRememberPassword"
/>
<Button
android:id="@+id/buttonSignIn"
android:text="Log In"
android:layout_width="124px"
android:layout_height="wrap_content"
android:layout_below="@+id/chkRememberPassword"
android:layout_alignLeft="@+id/chkRememberPassword"
/>
</TableRow>
<TextView
android:id="@+id/statusError"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</TableLayout>
</LinearLayout>
Soluzione
Vi suggerisco di utilizzare wrap_content in TableLayout e allora si può avere i pulsanti in LinearLayout
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
Altri suggerimenti
La sua non è possibile impostare più di un layout in un singolo file XML ... E per la stessa ragione di Android ha layout, layout del paesaggio, ecc tipo di sistema di cartella ..
Che cosa si può fare è, come spiegato da 100rabh ... Fai il layout universale applicando le impostazioni di layout e genitore di riempimento relativi ...
In caso contrario, come ho spiegato è necessario per rendere i file di layout 2 XML e posizionare il layout per il paesaggio nella cartella layout paesaggio così principio della disposizione verrà automaticamente impostato secondo l'orientamento del telefono ...
Spero che questo aiuti u ...
È necessario creare 2 file XML:
- Uno nella cartella
layout
normale - Un secondo in un
res/layout-land
per definire il layout per l'orientamento orizzontale. Avrai bisogno di creare la cartellares/layout-land
se non esiste già.