调整RelativeLayout会导致listview丢失选择,更多

时间:2013-02-22 01:13:11

标签: android listview android-linearlayout

我的主屏幕是一个RelativeLayout,在2个TableLayouts之上的ListView顶部包含一个LinearLayout。

我随意展示/隐藏各种作品。但是,第一次添加LinearLayout时,ListView丢失了它的选择,底部的TableLayout消失了。在第一次之后,一切正常。

知道发生了什么事吗?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/sort_header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@color/sorting"
        android:orientation="vertical"
        android:paddingBottom="10dp"
        android:paddingTop="10dp" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="left"
                android:text="Sort Order"
                android:textSize="18sp"
                android:paddingLeft="12dip"
                android:textStyle="bold" />

            <TextView
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="left"
                android:text="Score Mode"
                android:textSize="18sp"
                android:paddingLeft="12dip"
                android:textStyle="bold"  />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <Spinner
                android:id="@+id/sort_spinner"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:entries="@array/sort_array"
                android:prompt="@string/sort_prompt" />

            <Spinner
                android:id="@+id/score_spinner"
                android:layout_width="80dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:entries="@array/score_array"
                android:prompt="@string/score_prompt" />
        </LinearLayout>
    </LinearLayout>

    <ListView
        android:id="@+id/score_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/keyboard"
        android:layout_below="@+id/sort_header"
        android:choiceMode="singleChoice"
        android:divider="#CCCCCC"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/selector" />

    <TableLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/keyboard"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/keyboardSave"
        android:background="#000000"
        android:paddingBottom="0dip"
        android:paddingLeft="0dip"
        android:paddingRight="0dip"
        android:paddingTop="2dip" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="0dip" >

            <Button
                android:id="@+id/keyboard1"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="1" />

            <Button
                android:id="@+id/keyboard2"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="2" />

            <Button
                android:id="@+id/keyboard3"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="3" />

            <Button
                android:id="@+id/keyboardp10"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="+10" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="0dip" >

            <Button
                android:id="@+id/keyboard4"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="4" />

            <Button
                android:id="@+id/keyboard5"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="5" />

            <Button
                android:id="@+id/keyboard6"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="6" />

            <Button
                android:id="@+id/keyboardp1"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="+1" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="0dip" >

            <Button
                android:id="@+id/keyboard7"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="7" />

            <Button
                android:id="@+id/keyboard8"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="8" />

            <Button
                android:id="@+id/keyboard9"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="9" />

            <Button
                android:id="@+id/keyboardm1"
                style="@style/keyboardButton"
                android:background="@drawable/button_bg"
                android:text="-1" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="0dip" >

            <Button
                android:id="@+id/keyboardDel"
                style="@style/keyboardButton"
                android:background="@drawable/button_list"
                android:text="Del"
                android:textColor="#FF2C00" />

            <Button
                android:id="@+id/keyboard0"
                style="@style/keyboardButton"
                android:background="@drawable/button_list"
                android:text="0" />

            <Button
                android:id="@+id/keyboardPosNeg"
                style="@style/keyboardButton"
                android:background="@drawable/button_list"
                android:text="+ / -" />

            <Button
                android:id="@+id/keyboardm10"
                style="@style/keyboardButton"
                android:background="@drawable/button_list"
                android:text="-10" />
        </TableRow>
    </TableLayout>

    <TableLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/keyboardSave"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#000000"
        android:padding="0dip" >

        <TableRow
            android:id="@+id/tableRow5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingBottom="0dip"
            android:paddingLeft="0dip"
            android:paddingRight="0dip"
            android:paddingTop="2dip" >

            <Button
                android:id="@+id/keyboardSaveButton"
                style="@style/keyboardButton"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/save_button"
                android:text="Save" />
        </TableRow>
    </TableLayout>

</RelativeLayout>

我在OnCreate中隐藏了LinearLayout:

sortHeader.setVisibility(LinearLayout.GONE);

这是显示/隐藏的功能:

public void showOptions() {
    if (menuOptions.getTitle() != getString(R.string.show_options)) {
        menuOptions.setTitle(R.string.show_options);
        sortHeader.setVisibility(LinearLayout.GONE);
    } else {
        menuOptions.setTitle(R.string.hide_options);
        sortHeader.setVisibility(LinearLayout.VISIBLE);
    }
}

在此图片中,您可以看到各个部分。当我第一次看到排序部分时,“保存”按钮和选择都消失了。

enter image description here

这是一个前后。首先,没有排序,然后一旦我添加它们选择和按钮消失。

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试在LinearLayout中创建listview。可能会有用..!

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/keyboard"
    android:layout_below="@+id/sort_header">

    <ListView
        android:id="@+id/score_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:choiceMode="singleChoice"
        android:divider="#CCCCCC"
        android:dividerHeight="1dp"
    />

</LinearLayout>