0

我正在尝试使用静态标题和可滚动的动态列表进行活动。这是布局:

<GridLayout
 android:id="@+id/GridLayout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="1" >
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:paddingTop="5dp" 
    android:paddingLeft="5dp"
    android:paddingRight="5dp">
    <ListView
      android:id="@+id/listex"
      android:layout_width="match_parent" 
        android:layout_height="0dp"
        android:layout_weight="1" />
 </LinearLayout>

我尝试使用 height=0dp & weight=1 解决方案,但结果是当我向列表中添加某些内容时,它没有显示任何元素。

如果我使用 height= match_parent & weight=1 元素会显示但不可滚动

请帮忙,我尝试了很多组合gettign没有结果。

谢谢。

4

6 回答 6

0

您可以尝试使用以下代码:

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

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="static header" />

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>
于 2014-03-25T12:54:12.717 回答
0

我一直在使用这个列表视图,它工作正常。也许您的列表视图中没有足够的项目来滚动?

 <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="290dp"
        android:layout_weight="0.50" >
    </ListView>
于 2014-04-01T07:30:01.507 回答
0

这是我的解决方案。

<ListView
            android:id="@+id/listView"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_gravity="fill_horizontal"
            android:fadeScrollbars="true"
            android:layout_weight="1" />
于 2014-04-15T11:56:58.010 回答
0

将 ListView 权重设置为 1。或者您可以这样做。就在你设置你的适配器之后调用这个方法并在 dat 之后设置 adapternotifydatasetchange()。

public static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null)
            return;

        int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.UNSPECIFIED);
        int totalHeight = 0;
        View view = null;
        for (int i = 0; i < listAdapter.getCount(); i++) {
            view = listAdapter.getView(i, view, listView);
            if (i == 0)
                view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, ViewGroup.LayoutParams.WRAP_CONTENT));

            view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
            totalHeight += view.getMeasuredHeight();
        }
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
        listView.requestLayout();
    }
于 2015-11-27T08:05:51.567 回答
-1

您在 GridLayout 中的列表删除列表视图的父 GridLayout 它将完美滚动。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:paddingTop="5dp" 
    android:paddingLeft="5dp"
    android:paddingRight="5dp">
    <ListView
      android:id="@+id/listex"
      android:layout_width="match_parent" 
        android:layout_height="fill_parent"
        android:layout_weight="1" />
 </LinearLayout>

垂直滚动GridLayout不应包含另一个垂直滚动小部件(ListView)。您不应将 aListView放入其中,ScrollView因为ListView该类实现了自己的滚动,并且它只是不接收手势,因为它们都由其父级处理ScrollView

于 2012-10-22T09:37:09.593 回答
-2

设置为线性布局weightSum = 1

于 2012-10-22T10:18:03.707 回答