Comment définir différents modèles dans 1 fichier XML dans Android
-
26-09-2019 - |
Question
Salut les amis i ont mis ma disposition à travers TabLayout au sein LinearLayout mais mon bouton à la fin ne pouvait pas être réglée correctement comme TabLayout divise tous les champs en nombre de colonnes si quelqu'un peut aider comment définir 2 modèles dans un fichier XML des moyens tous les champs et TabLayout restants et les deux boutons Connexion enregistrer dans la mise en page linéaire ore une autre façon à pouvoir régler correctement.
Merci d'avance.
Mise en page
Nom d'utilisateur! EditTextBox
Mot de passe! EditTextBox
Connectez-vous! Inscrivez-vous
Bouton! Bouton
Je veux que ma mise en page au format ci-dessus, donc je l'ai utilisé TabLaout mais dans ce cas, il est à l'origine de la vue de mon bouton aussi bien qu'il est étirait un bouton d'autre que EditText est plus grand que 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>
La solution
Je vous suggère d'utiliser wrap_content dans TableLayout et vous pouvez avoir vos boutons dans LinearLayout
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
Autres conseils
Ce ne est pas possible de définir plus d'une mise en page dans un seul fichier xml ... Et pour la même raison Android a la mise en page, les schémas de paysage, etc. type de système de dossier ..
Qu'est-ce que vous pouvez faire est comme expliqué par 100rabh ... Faites la disposition universelle en appliquant les paramètres relatifs et mise en page parents de remplissage ...
Sinon, comme je l'ai expliqué que vous devez faire deux fichiers de mise en page XML et placer la mise en page pour le paysage dans le dossier layout-paysage ainsi la mise en page respective sera réglée automatiquement en fonction de l'orientation du téléphone ...
Hope this helps u ...
Vous devez créer 2 fichiers XML:
- Un dans le dossier
layout
normale - Une seconde dans un
res/layout-land
pour définir la mise en page pour l'orientation paysage. Vous devrez créer le dossierres/layout-land
si elle n'existe pas.