Проблема размещения пустого сообщения в Android - PullRequest
0 голосов
/ 19 апреля 2011

У меня есть макет для поиска. На экране есть окно поиска, а под полем поиска показан результат поиска.

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center_horizontal"
        android:background="#FFFFFF"
        android:stretchColumns="0" >
        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:focusable="true" 
            android:paddingTop="5dp"
            android:focusableInTouchMode="true">            
            <EditText
                android:id="@+id/searchword"
                android:textSize="14sp"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:drawableLeft="@drawable/icon_search"
                android:hint="@string/text_searchword">
            </EditText>
        </TableRow>
        <TableRow 
            android:id="@+id/listbox"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#FFFFFF">
            <LinearLayout       
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <ListView
                    android:id="@+id/android:list"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent">
                </ListView>
                <LinearLayout
                    android:id="@android:id/empty"              
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent">
                    <TextView 
                        android:id="@+id/emptytext" 
                                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:textColor="#818185"
                        android:textSize="25sp"
                        android:textStyle="bold"
                        android:background="#FFFFFF"
                        android:text="@string/empty_res"
                        android:gravity="center_horizontal"
                        android:paddingLeft="6dip"
                    />
                </LinearLayout> 
            </LinearLayout>
        </TableRow>
</TableLayout>

Я хочу, чтобы результат поиска отображался сразу после поля поиска, но если результата поиска нет, пустое сообщение должно располагаться вертикально в центре блока для результата поиска. Но мне не удалось переместить его вертикально по центру. Как можно расположить сообщение вертикально по центру?

1 Ответ

2 голосов
/ 19 апреля 2011

Попробуйте использовать этот макет:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#FFFFFF">

    <EditText
        android:id="@+id/searchword"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:textSize="14sp"
        android:drawableLeft="@drawable/icon_search"
        android:hint="@string/text_searchword" />

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

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

        <TextView 
            android:id="@+id/emptytext" 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:textColor="#818185"
            android:textSize="25sp"
            android:textStyle="bold"
            android:text="@string/empty_res"
            android:paddingLeft="6dip"
            android:visibility="gone" />
    </FrameLayout>
</LinearLayout>

Вы должны изменить видимость списка и текста в зависимости от результата поиска.

...