Android Layout не отображает все мои компоненты - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь отобразить EditText и Button по горизонтали, а под ними я хочу отобразить List (ListView).Я пробовал это, но кажется, что он видит только первый макет и ничего больше после.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="1dip"
>  <LinearLayout 
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="4"> <EditText
android:id="@+id/search_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
/>
<Button 
android:id="@+id/search_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go"
android:layout_weight="1"
/> </LinearLayout>  <!-- <EditText
android:id="@+id/testedit_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
/>
--> <ListView android:id="@+id/android:list"
      android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
<TextView android:id="@+id/text1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textAppearance="?android:attr/textAppearanceLarge"    />    <TextView android:id="@+id/text2"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textAppearance="?android:attr/textAppearanceSmall"    /></LinearLayout>

Я также попробовал и закомментированную строку (EditText), а также он не показывает мне ничего ... Любойидея?Спасибо!

Ответы [ 5 ]

0 голосов
/ 17 июня 2011

Попробуй это .... у меня сработало:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pagelayout">

    <FrameLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:id="@+id/content">
        <ListView android:id="@+id/android:list"
      android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    </FrameLayout>

    <LinearLayout android:layout_height="wrap_content"
        android:id="@+id/button_layout" 
        android:layout_width="fill_parent" android:gravity="center" android:layout_above="@+id/content">

        <Button android:id="@+id/search_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Go"
            android:layout_weight="1"
            />

            <EditText>
            android:id="@+id/search_txt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            </EditText>
    </LinearLayout>

    </RelativeLayout>
0 голосов
/ 17 июня 2011

Я предполагаю, что вы хотите, чтобы EditText и Button были вверху, два TextView внизу и ListView для заполнения доступного пространства посередине. Если это так, то вам нужно настроить layout_height и добавить android:layout_weight="1" в свой ListView:

<?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" android:padding="1dip">
    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent" android:weightSum="4"
        android:layout_height="wrap_content">
        <EditText android:id="@+id/search_txt" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:layout_weight="3" />
        <Button android:id="@+id/search_button" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:text="Go"
            android:layout_weight="1" />
    </LinearLayout>  <!-- <EditText android:id="@+id/testedit_txt" android:layout_width="wrap_content" 
        android:layout_height="wrap_content" android:layout_weight="3" /> -->
    <ListView android:id="@+id/android:list" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_weight="1" />
    <TextView android:id="@+id/text1" android:layout_width="fill_parent"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_height="wrap_content" />
    <TextView android:id="@+id/text2" android:layout_width="fill_parent"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_height="wrap_content" />
</LinearLayout>
0 голосов
/ 17 июня 2011

вы используете два вложенных LinearLayout с fillParent ... вы делаете это неправильно.Почему вы не используете RelativeLayout?

0 голосов
/ 17 июня 2011

Попробуйте это:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="1dip">
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:weightSum="4"
        android:layout_height="wrap_content">
        <EditText
            android:id="@+id/search_txt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="3" />
        <Button
            android:id="@+id/search_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Go"
            android:layout_weight="1" />
    </LinearLayout>  <!-- <EditText android:id="@+id/testedit_txt" android:layout_width="wrap_content" 
        android:layout_height="wrap_content" android:layout_weight="3" /> -->
    <ListView
        android:id="@+id/android:list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_weight="1"/>
    <TextView
        android:id="@+id/text1"
        android:layout_width="fill_parent"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_height="wrap_content"
        android:text="qwe" />
    <TextView
        android:id="@+id/text2"
        android:layout_width="fill_parent"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_height="wrap_content"
        android:text="qwe" />
</LinearLayout>
0 голосов
/ 17 июня 2011

Добавить

layout_weight="1"

в ваш горизонтальный макет. И вам нужно будет добавить похожие строки в TextViews внизу, если вы хотите их видеть.

Ваша текущая проблема заключается в том, что вы устанавливаете его на fill_parent, поэтому, когда он попадает в ListView, свободного места нет.

...