Android - 列表视图,带有单选单选按钮

时间:2013-02-28 11:01:53

标签: android listview radio-button

我有一个包含2个单选按钮项的列表视图。当从布局中对其进行充气时,即使有如下所示的大量空间,它也可以滚动。enter image description here 如屏幕截图所示,我有2个单选按钮。 1.距离 2.评级

但是“评级”单选按钮不可见,我必须滚动才能看到它。为什么会这样呢?我试图设置布局高度来包装内容,填充父级和匹配父级。但这并没有解决问题。知道为什么会这样吗?

这里我引用了列表视图:

ListView radio_list = (ListView) view.findViewById(R.id.RadioList);
radio_list.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_single_choice,
                radio_list_items));

radio_list.setItemsCanFocus(true);
radio_list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

我的xml:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#ffffff"
                android:paddingLeft="10dp"
                android:text="SEARCH"
                android:textColor="#FF3300"
                android:textSize="20dp" >
            </TextView>
        </LinearLayout>

        <RelativeLayout
            android:id="@+id/searchTextLayout"
            android:layout_width="match_parent"
            android:layout_height="50dip"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginBottom="20dip"
            android:layout_marginLeft="20dip"
            android:layout_marginRight="20dip"
            android:layout_marginTop="20dip"
            android:orientation="horizontal" >

            <ImageButton
                android:id="@+id/searchTextButton"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_alignParentLeft="true"
                android:background="#685E5C"
                android:contentDescription="Sample"
                android:scaleType="fitCenter"
                android:src="@drawable/abs__ic_search" />

            <EditText
                android:id="@+id/searchText"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_toRightOf="@id/searchTextButton"
                android:background="@drawable/background_black_border_full"
                android:padding="8dp"
                android:textColor="@android:color/white" />
        </RelativeLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#ffffff"
                android:paddingLeft="10dp"
                android:text="SORT BY"
                android:textColor="#FF3300"
                android:textSize="20dp" >
            </TextView>
        </LinearLayout>

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

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

1 个答案:

答案 0 :(得分:3)

您的布局xml文件很奇怪,

首先你要简化它:

在LinearLayout =&gt;中没有任何一个元素是没有意义的。这意味着相应的线性布局是无用的。

第二点:如果线性布局中有2个子节点,并且第一个节点的高度为&#34; match_parent&#34;没有任何layout_weight设置,第二个将被推出,因为没有任何空间。 (这可能是你的问题)

第三点:你使用相对布局作为线性布局,证明是你试图在它上面使用的android:orientation参数。它没用。相对布局子项的位置由它们之间的相对位置给出。在您的情况下,您可以使用方向水平而不是RelativeLayout

的LinearLayout

最好的建议是帮助您:简化布局xml。

More on this topic.