Android,如何将ScrollView添加到有一些列表项的屏幕中?

时间:2012-05-08 10:25:23

标签: android scrollview

在我的活动中,我有三个清单。运行应用程序后,屏幕无法滚动。我可以滚动列表,但我无法滚动整个页面。我试图将ScrollView添加到我的xml布局中,但是lint说“垂直滚动的ScrollView不应该包含另一个垂直滚动的小部件(ListView)”。

如何让我的屏幕可滚动?

5 个答案:

答案 0 :(得分:2)

试试这种方式

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

    <LinearLayout android:id="@+id/GlobalLayout" 
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:orientation="vertical" >

        <ListView android:id="@+id/ListView1"
                  android:choiceMode="multipleChoice"
                  android:layout_height="100dip"
                  android:layout_width="fill_parent" />
       <ListView android:id="@+id/ListView2"
                  android:choiceMode="multipleChoice"
                  android:layout_height="100dip"
                  android:layout_width="fill_parent" />
       <ListView android:id="@+id/ListView3"
                  android:choiceMode="multipleChoice"
                  android:layout_height="100dip"
                  android:layout_width="fill_parent" />

    </LinearLayout>

</ScrollView>

答案 1 :(得分:1)

enter image description here

<ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

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

            <ListView
                android:id="@+id/listView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1" >
            </ListView>

        </LinearLayout>

    </ScrollView>

Scrollview支持一个子布局,因此在列表中创建列表视图,这样您就可以获得所需的内容。

答案 2 :(得分:1)

它不起作用,因为android不知道他应该滚动哪个视图,所以将listview放在scrollview中并不是一个好主意。 尝试使用visibilty属性,使用HIDE您要使用的视图并设置VISIBLE新视图。 或者使用一个ListView并尝试在完成和开始指令后填充和删除项目。 希望能帮到你

答案 3 :(得分:1)

使用此方法,您的列表视图可在scrollview中滚动: -

   ListView lstNewsOffer.setAdapter(new ViewOfferAdapter(
                            ViewNewsDetail.this, viewOfferList));
                    getListViewSize(lstNewsOffer);

void getListViewSize(ListView myListView) {
    ListAdapter myListAdapter = myListView.getAdapter();
    if (myListAdapter == null) {
        // do nothing return null
        return;
    }
    // set listAdapter in loop for getting final size
    int totalHeight = 0;
    for (int size = 0; size < myListAdapter.getCount(); size++) {
        View listItem = myListAdapter.getView(size, null, myListView);
        listItem.measure(0, 0);
        totalHeight += listItem.getMeasuredHeight();
    }
    // setting listview item in adapter
    ViewGroup.LayoutParams params = myListView.getLayoutParams();
    params.height = totalHeight
            + (myListView.getDividerHeight() * (myListAdapter.getCount() - 1));
    myListView.setLayoutParams(params);
    // print height of adapter on log
    Log.i("height of listItem:", String.valueOf(totalHeight));
}

答案 4 :(得分:0)

您可以做的是,您可以通过膨胀将页眉和页脚添加到列表视图中。创建三个xml layououts并使用页眉和页脚将它们添加到listview中。

    View headerView = View.inflate(this, R.layout.layout_name, null);
    lv.addHeaderView(headerView);

在设置适配器之前使用它。 lv是listview。