首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在滚动视图中滚动列表视图?

如何在滚动视图中滚动列表视图?
EN

Stack Overflow用户
提问于 2012-04-18 20:00:07
回答 3查看 751关注 0票数 0

我是Android的新手,我正在开发一个在滚动视图中使用listview的应用程序。根据我的要求,我需要显示垂直滚动和下面的列表视图的一些视图。我想要垂直滚动整个视图和listview,而listview必须独立滚动。我在谷歌上搜索了解决方案,但发现我们不应该在滚动视图中使用Listview。

我已经尝试了一种替代方法,用动态LinearLayouts替换Listview,但也不起作用。

我试着在触摸ListItem时禁用ScrollView的焦点,反之亦然,但我没有成功。

我尝试了下面的代码来禁用滚动视图的焦点。

代码语言:javascript
复制
mScrollView.setFocusableInTouchMode(true);
mScrollView.setFocusable(true);

mScrollView.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);

mScrollView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        v.requestFocusFromTouch();
        return false;
    }
});

请帮帮我,提前谢谢

EN

回答 3

Stack Overflow用户

发布于 2012-04-18 20:06:34

ListViews不应该在滚动视图中使用。

参考:see this

票数 2
EN

Stack Overflow用户

发布于 2012-04-18 20:12:55

不要在ScrollView中嵌套ListView

如果你必须这样做,试试下面的代码,它也来自StackOverflow,由一个人回答。

代码语言:javascript
复制
public class Utility {
public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }

    int totalHeight = 0;
    for (int i = 0; i < listAdapter.getCount(); i++) {
        View listItem = listAdapter.getView(i, null, listView);
        listItem.measure(0, 0);
        totalHeight += listItem.getMeasuredHeight();
    }
    
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() – 1));
    listView.setLayoutParams(params);
}
}
票数 0
EN

Stack Overflow用户

发布于 2012-04-18 20:30:15

正如你从其他人那里了解到的..

ScrollView中的ListView将不起作用。

对于解决方案的摇动,

您可以将另一个布局part...your views添加到一个xml中,将listview添加到另一个xml中

然后使用listView.setHeaderView(view);添加您的视图布局作为其标题。

示例代码:

LinearLayout ll = (LinearLayout) findViewById(R.id.headerlayout);ListView lv = (ListView)findViewById(R.id.listview);lv.addHeaderView(ll);

,或者你也可以在互联网上搜索,例如搜索带有标题的列表视图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10208912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档