كيفية تعيين تخطيطات مختلفة في ملف XML 1 في Android
-
26-09-2019 - |
سؤال
مرحبًا أيها الأصدقاء ، لقد قمت بتعيين تخطيري من خلال tablayout داخل LinearLayout ، لكن لا يزال لا يمكن ضبط الزر في النهاية بشكل صحيح لأن Tablayout يقسم جميع الحقول في عدد الأعمدة ، لذا يمكن لأي شخص أن يساعد في تعيين 2 تخطيطات في ملف XML واحد يعني كل ما الحقول في tableayout والبقاء على حد سواء تسجيل الدخول وتسجيل الأزرار في تخطيط خطي خام بعضها البعض حتى يتمكنوا من ضبطها بشكل صحيح.
شكرا مقدما.
تَخطِيط
اسم المستخدم ! edittextbox
كلمة المرور ! edittextbox
تسجيل الدخول ! يسجل
زر ! زر
أريد تخطيطي بالتنسيق أعلاه ، لذا فقد استخدمت Tableaout ولكن في هذه الحالة ، يتسبب في عرض زر بلدي وكذلك تمدد زر واحد من الآخر لأن EditText أكبر من 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>
المحلول
أقترح عليك استخدام WRAP_CONTENT في TableLayout ومن ثم يمكنك الحصول على أزرارك في LinearLayout
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
نصائح أخرى
لا يمكن تعيين أكثر من تخطيط واحد في ملف XML واحد ... وللسبب نفسه ، لدى Android تخطيطًا ، تخطيطًا ، نوعًا من نظام المجلد ..
ما يمكنك فعله هو كما هو موضح من قبل 100 راب ... اجعل التخطيط عالميًا من خلال تطبيق التخطيط النسبي وملء إعدادات الوالدين ...
وإلا عندما أوضحت ، فأنت بحاجة إلى إنشاء ملفين لتخطيط XML ووضع تخطيط المناظر الطبيعية في مجلد Landout-Landscape ، وبالتالي سيتم تعيين التصميم المعني تلقائيًا وفقًا لتوجيه الهاتف ...
أتمنى أن يساعدك هذا ...
تحتاج إلى إنشاء ملفين XML:
- واحد بشكل طبيعي
layout
مجلد - ثانية في أ
res/layout-land
لتحديد تخطيط اتجاه المناظر الطبيعية. ستحتاج إلى إنشاء ملفres/layout-land
المجلد إذا لم يكن موجودًا بالفعل.