listview的高度是列表项的三倍,在android中,listview底部的剩余空间为空

listview的高度是列表项的三倍,在android中,listview底部的剩余空间为空,android,listview,Android,Listview,我的listview在设计方面存在问题,因为它在底部留下了一些额外的空间,实际问题是我在单个活动中使用多个listview,然后使用以下代码控制每个listview的高度:- public static void setListViewHeightBasedOnChildren(ListView listView,Context c) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == nul

我的listview在设计方面存在问题,因为它在底部留下了一些额外的空间,实际问题是我在单个活动中使用多个listview,然后使用以下代码控制每个listview的高度:-

public static void setListViewHeightBasedOnChildren(ListView listView,Context c) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
        // pre-condition
        return;
    }

    int totalHeight = 0;
    int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
    for (int i = 0; i < listAdapter.getCount(); i++) {
        View listItem = listAdapter.getView(i, null, listView);
        if (listItem instanceof ViewGroup) 
            listItem.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
        totalHeight += listItem.getMeasuredHeight();
      //  Toast.makeText(c, "height:-"+totalHeight, 0).show();

    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    Toast.makeText(c, "height:-"+ params.height, 0).show();

    listView.setLayoutParams(params);
    listView.requestLayout();
}
publicstaticvoid setListViewHeightBasedOnChildren(ListView ListView,上下文c){
ListAdapter ListAdapter=listView.getAdapter();
如果(listAdapter==null){
//前提条件
回来
}
int totalHeight=0;
int desiredWidth=MeasureSpec.makeMeasureSpec(listView.getWidth(),最多测量一次);
对于(int i=0;i
当我在线从json加载数据时,它工作得很好,但当我从sqlite数据库离线使用数据时,它会无意中将listview的高度增加到项目高度的三倍,我在Google上搜索了很多次,但没有得到任何结果,如果有人有什么想法,请告诉我,我可以再解释一下

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

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:background="#F45555" >

                        <TextView
                            android:id="@+id/category1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Breaking News"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@color/white"
                            android:textSize="16dp"
                            android:textStyle="bold" />
                    </LinearLayout>

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

                        <ListView
                            android:id="@android:id/list"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:adjustViewBounds="true"
                            android:background="@color/white" />

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:background="#F45555" >

                        <TextView
                            android:id="@+id/category1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:background="#F45555"
                            android:text="Top Stories"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@color/white"
                            android:textSize="16dp"
                            android:textStyle="bold" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical" >

                        <ListView
                            android:id="@+id/list2"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:background="@color/white" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_gravity="center"
                        android:background="#F45555" >

                        <TextView
                            android:id="@+id/category1"
                            android:layout_width="wrap_content"
                            android:layout_height="match_parent"
                            android:layout_gravity="center_horizontal"
                            android:background="#F45555"
                            android:text="City"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@color/white"
                            android:textSize="16dp"
                            android:textStyle="bold" />
                    </LinearLayout>

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

                        <ListView
                            android:id="@+id/list3"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:background="@color/white" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:background="#F45555" >

                        <TextView
                            android:id="@+id/category1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="News"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@color/white"
                            android:textSize="16dp"
                            android:textStyle="bold" />
                    </LinearLayout>

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

                        <ListView
                            android:id="@+id/list4"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="@color/white" >
                        </ListView>
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:background="#F45555" >

                        <TextView
                            android:id="@+id/category1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Kashmir"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@color/white"
                            android:textSize="16dp"
                            android:textStyle="bold" />
                    </LinearLayout>

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

                        <ListView
                            android:id="@+id/list5"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:background="@color/white" >
                        </ListView>
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:background="#F45555" >

                        <TextView
                            android:id="@+id/category1"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:background="#F45555"
                            android:text="Jammu"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@color/white"
                            android:textSize="16dp"
                            android:textStyle="bold" />
                    </LinearLayout>

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

                        <ListView
                            android:id="@+id/list6"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentTop="true"
                            android:background="@color/white" />
                    </LinearLayout>
                </LinearLayout>

试试这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="#F45555" >

    <TextView
        android:id="@+id/category1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Breaking News"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/white"
        android:textSize="16dp"
        android:textStyle="bold" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:background="@color/white" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="#F45555" >

    <TextView
        android:id="@+id/category1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:background="#F45555"
        android:text="Top Stories"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/white"
        android:textSize="16dp"
        android:textStyle="bold" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="#F45555" >

    <TextView
        android:id="@+id/category1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:background="#F45555"
        android:text="City"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/white"
        android:textSize="16dp"
        android:textStyle="bold" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white" />
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="#F45555" >

    <TextView
        android:id="@+id/category1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="News"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/white"
        android:textSize="16dp"
        android:textStyle="bold" />

</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white" >
    </ListView>
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="#F45555" >

    <TextView
        android:id="@+id/category1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Kashmir"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/white"
        android:textSize="16dp"
        android:textStyle="bold" />

</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white" >
    </ListView>
</LinearLayout>

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="#F45555" >

    <TextView
        android:id="@+id/category1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:background="#F45555"
        android:text="Jammu"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@color/white"
        android:textSize="16dp"
        android:textStyle="bold" />

</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="@color/white" />
</LinearLayout>


请调试您从远程设备获取的数据。这会导致包含额外空间。

我也遇到过此类问题。根据我的经验,这是由于对子视图使用了
TableLayout
,因此我必须将其更改为
LinearLayout
。然而,我仍然不知道为什么会发生这种事。但是,我怀疑我的情况是否也适用于您……是的,您是对的,但我使用的是LinearLayout not Tablet。您可以尝试将它们设置为每个高度都有包裹内容,并且不要通过编程更改高度。然后给每个人一个1的权重。然后尝试调整权重,直到你得到你想要的。@Rickfalk,我也尝试过,但它包装了内容,并为每个listview显示了一个listItem,因为我再次想说,我在单个活动布局中使用了多个listview,请看我的xml文件我也将发布该文件谢谢你的回答,但是我不适合我,我得到了唯一的选择,在XML文件中静态设置大小height attributeOK。没有照片我真的说不出你想干什么。