DrawerLayout中的ListView(高度)不会填满屏幕

时间:2015-07-05 17:19:29

标签: android android-layout android-listview

我在自定义ListView中使用DrawerLayout作为 NavigationView ,但是当我从ListView中移除了一些项目后,我不会填写屏幕。

截图

enter image description here

Layout.xml

<ma.www.helpers.HackyDrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_="0dp"
        android:orientation="vertical"
        android:weightSum="15">

        <!-- Framelayout to display Fragments Act/Profe/Rechercher -->
        <FrameLayout
            android:id="@+id/frame_container"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="9"/>
        <!-- Framelayout to display menu-->
        <FrameLayout
            android:id="@+id/frame_menu"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="6">

            <GridView
                android:scrollbarThumbVertical="@drawable/custom_scroll_style"
                android:fadeScrollbars="false"
                android:id="@+id/gridView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:numColumns="2"
                android:stretchMode="columnWidth"
                android:gravity="fill" />
        </FrameLayout>
    </LinearLayout>
    <!-- Listview to display slider menu -->
    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="250dp"
        android:layout_height="fill_parent"
        android:layout_gravity="start"
        android:gravity="center"
        android:choiceMode="singleChoice"
        android:scrollbarSize="10dp"
        android:scrollbarThumbVertical="@drawable/custom_scroll_style"
        android:divider="#ce2580"
        android:dividerHeight="1dp"/>
</ma.www.helpers.HackyDrawerLayout>

3 个答案:

答案 0 :(得分:0)

您可以通过以下两种方式之一完成此操作: 1.使用relativelayout而不是linearlayout。 2.调整第一个列表,使其填满整行。

答案 1 :(得分:0)

在您的XML标记中,您将layout_width设置为250dp,尝试将其更改为fill_parentmatch_parent

<ListView
    android:id="@+id/list_slidermenu"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="start"
    android:gravity="center"
    android:choiceMode="singleChoice"
    android:scrollbarSize="10dp"
    android:scrollbarThumbVertical="@drawable/custom_scroll_style"
    android:divider="#ce2580"
    android:dividerHeight="1dp"/>

修改 根据您的修改,请参阅此帖:Android List view fill the height to the contents 他们建议您使用LinearLayout代替ListView,因为您拥有固定数量的商品。

答案 2 :(得分:0)

像这样更改ListView,

<FrameLayout
    android:layout_width="250dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@android:color/white">
    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:choiceMode="singleChoice"
        android:scrollbarSize="10dp"
        android:scrollbarThumbVertical="@drawable/custom_scroll_style"
        android:divider="#ce2580"
        android:dividerHeight="1dp"/>
</FrameLayout>