Как установить разные макеты в 1 XML-файле в Android - PullRequest
3 голосов
/ 27 октября 2010

Привет, друзья! Я установил свой макет с помощью TabLayout в LinearLayout, но, тем не менее, моя кнопка в конце не могла быть правильно настроена, так как TabLayout делит все поля на количество столбцов, так что любой может помочь, как установить 2 макета в одном файле XMLозначает, что все поля в TabLayout и оставшиеся кнопки Line и Login в Linear Layout или другие, так что они могут быть установлены правильно.

Заранее спасибо.

Макет

Имя пользователя!EditTextBox

Пароль!EditTextBox

Войти!Регистрация

Кнопка!Кнопка

Я хочу, чтобы мой макет был в указанном выше формате, поэтому я использовал TabLaout, но в этом случае он вызывает вид моей кнопки, а также растягивает одну кнопку по сравнению с другой, поскольку 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>

Ответы [ 3 ]

1 голос
/ 27 октября 2010

Я предлагаю вам использовать 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"
>
0 голосов
/ 19 мая 2012

Вам нужно создать 2 XML-файла:

  1. Один в обычной папке layout
  2. Секунда в res/layout-land для определения макета для альбомной ориентации. Вам нужно будет создать папку res/layout-land, если она еще не существует.
0 голосов
/ 27 октября 2010

Невозможно установить более одного макета в одном XML-файле ... И по той же причине Android имеет макет, макет-ландшафт и т. Д. Тип системы папок.

Что вы можете сделать, как описано в 100rabh ... Сделать макет универсальным, применив относительный макет и заполнив родительские настройки ...

В противном случае, как я объяснил, вам нужно создать 2 файла макета xml и поместить макет для альбомной ориентации в папку layout-landscape, поэтому соответствующий макет будет автоматически установлен в соответствии с ориентацией телефона ...

Надеюсь, это поможет тебе ...

...