Cómo configurar diferentes diseños en 1 archivo XML en Android
-
26-09-2019 - |
Pregunta
Hola amigos he puesto mi diseño a través TabLayout dentro LinearLayout pero sigue siendo mi botón al final no se podían establecer correctamente como TabLayout divide a todos los campos de número de columnas para ayuda Puede alguien cómo configurar 2 Presentaciones en un archivo XML medios todos los ámbitos en los TabLayout y los dos botones restantes inicio de sesión y registro en el diseño lineal mineral de alguna otra manera que puedan establecer correctamente.
Gracias de antemano.
Layout
nombre de usuario! EditTextBox
Contraseña! EditTextBox
Inicio de sesión! Regístrese
botón! Botón
Quiero que mi diseño en el formato anterior, así que he utilizado TabLaout pero en ese caso está causando la opinión de mi botón, así como que se está estirando un botón de otro como EditarTexto es más grande que la de Vista de Texto
<?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>
Solución
Le sugiero que utilizar wrap_content en TableLayout y entonces puede tener los botones en LinearLayout
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
Otros consejos
No es posible establecer más de un diseño en un solo archivo XML ... Y por la misma razón Android tiene el diseño, disposición del paisaje, etc. tipo de sistema de carpetas ..
Lo que puede hacer es como se explica por 100rabh ... Hacer que el diseño universal, mediante la aplicación de configuración del diseño y de los padres terraplén relativo ...
De otro modo como he explicado lo necesario para hacer archivos de diseño 2 XML y colocar el diseño de paisaje en la carpeta de diseño-paisaje con ello la disposición correspondiente se ajustará automáticamente según la orientación del teléfono ...
Espero que esto ayude u ...
Es necesario crear 2 archivos XML:
- Una en la carpeta normal de
layout
- Un segundo en un
res/layout-land
para definir el diseño de la orientación horizontal. Tendrá que crear la carpetares/layout-land
si no existe ya.