Android - Линейная компоновка, расположение не так, как ожидалось - PullRequest
0 голосов
/ 23 декабря 2010

Ниже приведен мой код. Я хочу интерфейс, где у меня есть однострочное текстовое поле, многострочное текстовое поле с двумя кнопками ниже. Я хочу, чтобы многострочное текстовое поле занимало все пространство, доступное после рендеринга кнопок и текстового поля. Для этого я создал два LinearLayouts внутри основного макета. Первый имеет вертикальную ориентацию с layout_width, установленным в fill_parent. Второй горизонтальный с fill_parent снова.

В первом есть текстовое поле, для которого я установил layout_height для заполнения родительского элемента. Второй имеет два текстовых поля OK и Отмена.

Когда я запускаю это приложение, я получаю интерфейс, но кнопки очень маленькие (около 5 пикселей в высоту). Я должен установить высоту кнопки вручную. Что я тут не так делаю. Я не хочу жестко кодировать высоту кнопки.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1">
    <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Name"></TextView>
    <EditText android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText>
    <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Contents"></TextView>
    <EditText android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="top"  />
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1">
    <Button android:id="@+id/okbutt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="OK" android:layout_weight="1"  />
    <Button android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Cancel" android:layout_weight="1" />
</LinearLayout>

Спасибо, Arun

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

Мне было интересно, как это сделать, поэтому я решил попробовать. Вот что я придумал:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android" 
   android:orientation="vertical" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent">
  <LinearLayout 
     android:id="@+id/buttons"
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true">
    <Button 
       android:id="@+id/okbutt" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"
       android:text="OK" />
    <Button 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"
       android:text="Cancel" />
  </LinearLayout>
  <TextView 
     android:id="@+id/textview1"
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true"
     android:text="Name" />
  <EditText 
     android:id="@+id/textedit1"
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"
     android:layout_below="@id/textview1" />
  <TextView 
     android:id="@+id/textview2"
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/textedit1"
     android:text="Contents" />
  <EditText 
     android:id="@+id/textedit2"
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/textview2" 
     android:layout_above="@id/buttons" />
</RelativeLayout>

Кажется, ты делаешь то, что хочешь.

0 голосов
/ 23 декабря 2010

Вы можете использовать относительную компоновку вместо двух линейных компоновок, я думаю, это даст более понятный интерфейс.и
, если вы хотите увеличить высоту кнопки вручную, просто увеличьте высоту текста, написанного на кнопке, т.е. высоту OK, и отмените с помощью

android: textSize

попробуйте это, может быть, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...