如何向上滚动列表视图上方的视图?

时间:2014-07-28 11:57:47

标签: android listview scroll

我在列表视图上方有一个相对布局,其中包含多个textview和imageview。这些textview,imageview和listview数据在调用asynctask后动态绑定。

我需要向上滚动相对布局以及listview,因为它几乎占据了屏幕尺寸的一半。

我尝试了addheaderview,但要使用该视图应该动态添加。我已经在XML中将我的Relativelayout声明为listview,因为它有很多子节点,并且很难动态调整视图。 我知道我不能在scrollview中使用listview。

我在这里尝试了答案,但都没有奏效。有人可以建议一个好方法来解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试在完整的Realative Layout

中添加ScrollView

答案 1 :(得分:-1)

我使用它对我有用,在ListView

中使用ScrollView

将此代码用于ListView

的动态高度

//创建一个类

 public class ListUtility {

public static void setListViewHeightBasedOnChildren(ListView listView) {
    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);
        listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
        totalHeight += listItem.getMeasuredHeight();
    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
    listView.requestLayout();
}

}

在您的活动中使用它

listView.setAdapter(adapter);
ListUtility.setListViewHeightBasedOnChildren(listView);