GridView中的maxHeight无法运行Android

时间:2015-12-28 14:53:56

标签: android gridview

我使用Gridview来显示内容,在GridView下面有listview。

Xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="vertical">

<include
    android:id="@+id/tag_dialog_tool_bar"
    layout="@layout/add_tag_dialog_toolbar"></include>

<EditText
    android:id="@+id/full_screen_dialog_search_tag"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:drawableLeft="@drawable/gray_search"
    android:drawablePadding="5dp"
    android:hint="Search"
    android:imeOptions="actionSearch"
    android:singleLine="true" />

    <GridView
    android:id="@+id/tags_grid_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/full_screen_dialog_search_tag"
    android:layout_marginBottom="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:maxHeight="200dp"
    android:gravity="center"
    android:horizontalSpacing="10dp"
    android:numColumns="2"
    android:verticalSpacing="10dp"></GridView>

<ListView
    android:id="@+id/all_tags_list_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/tags_grid_view"
    android:layout_marginBottom="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:divider="@null"
    android:dividerHeight="0dp"
    android:scrollbarStyle="outsideInset"></ListView>

    </LinearLayout>

我的问题是,如果GirdView中的数据增加,那么它将填满整个屏幕,Listview变得不可见。为了克服这个问题,我试图使用maxHeight,但它不起作用。任何帮助表示赞赏。

注意:我不想拥有gridview的固定高度

1 个答案:

答案 0 :(得分:0)

您可以将EditText之后的剩余空间分成两半。上半部分为GridView,另一半为ListView

您可以使用以下代码来实现此目的。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#fff"
              android:orientation="vertical">

    <include
        android:id="@+id/tag_dialog_tool_bar"
        layout="@layout/add_tag_dialog_toolbar"></include>

    <EditText
        android:id="@+id/full_screen_dialog_search_tag"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:drawableLeft="@drawable/gray_search"
        android:drawablePadding="5dp"
        android:hint="Search"
        android:imeOptions="actionSearch"
        android:singleLine="true"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:orientation="vertical">

    <GridView
        android:id="@+id/tags_grid_view"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@+id/full_screen_dialog_search_tag"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:layout_weight="1"
        android:gravity="center"
        android:horizontalSpacing="10dp"
        android:maxHeight="200dp"
        android:numColumns="2"
        android:verticalSpacing="10dp"></GridView>

    <ListView
        android:id="@+id/all_tags_list_view"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@+id/tags_grid_view"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:layout_weight="1"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:scrollbarStyle="outsideInset"></ListView>
    </LinearLayout>

</LinearLayout>