`
mengsina
  • 浏览: 191200 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Android ScrollView嵌套ScrollView滚动的问题解决办法

阅读更多
引用:http://fenglog.com/article.asp?id=449
Android ScrollView嵌套ScrollView滚动的问题解决办法
原文地址:http://trivedihardik.wordpress.com/2011/09/19/scrollview-inside-scrollview-scrolling-problem/

搞技术的多少看的懂E文,也不翻译了。

While designing rich layouts you might need to use two scrollview in your app.
Well ideally its not advised to use two scrollview in a view. So try to avoid it.

Why this problem occurs ? :

When you put two scrollview android just get confused which scroll view is touched. So sometimes it gets unable to deliver touch event.

But even if the requirement forces you to make such layouts. Try this…

Say case is somewhat like this….

<ScrollView android:id=”@+id/parent_scroll”
            android:layout_width=”fill_parent”
            android:layout_height=”wrap_content”
            android:layout_weight=”1″
            android:background=”@drawable/dotted_bg”
            android:focusableInTouchMode=”false”>
                        <LinearLayout   />
                        <LinearLayout   />
                        <LinearLayout  >
                        <ScrollView android:id=”@+id/child_scroll” 
                        android:layout_width=”fill_parent”
                        android:layout_height=”fill_parent”
                        android:background=”@drawable/text_box_bg”>
                    <TextView android:id=”@+id/text_description”
                        android:layout_width=”fill_parent”
                        android:layout_height=”fill_parent”
                        android:textColor=”@color/gray”
                        android:textSize=”12dip”
                        android:padding=”5dip”
                        android:scrollbars=”vertical”/>
                    <!–ScrollView>
                  </LinearLayout>
</ScrollView>

Step 1 : Provide unique id to both the scrollview.
Step 2 : get reference of that two scrollview in your activity.

     parentScroll=(ScrollView)findViewById(R.id.parent_scroll);
     childScroll=(ScrollView)findViewById(R.id.child_scroll);

Step 3: Now set touch listeners for both.

            parentScroll.setOnTouchListener(new View.OnTouchListener() {

                public boolean onTouch(View v, MotionEvent event) {
                    Log.v(TAG,”PARENT TOUCH”);
                    findViewById(R.id.child_scroll).getParent().requestDisallowInterceptTouchEvent(false);
                    return false;
                }
            });
            childScroll.setOnTouchListener(new View.OnTouchListener() {

                public boolean onTouch(View v, MotionEvent event)
                {
                    Log.v(TAG,”CHILD TOUCH”);
                                        // Disallow the touch request for parent scroll on touch of child view
                    v.getParent().requestDisallowInterceptTouchEvent(true);
                    return false;
                }
            });

Done …
分享到:
评论
6 楼 mengsina 2015-12-02  
Gamalack 写道
我们这里烦不了墙,看不到英文版的啊

推荐 过墙的浏览器 天行
5 楼 Gamalack 2015-11-07  
我们这里烦不了墙,看不到英文版的啊
4 楼 Gamalack 2015-11-07  
有没有demo啊,自己试了好久都没有弄出来
3 楼 mengsina 2015-07-28  
nvcxy_1225 写道
Thanks。very thanks

这个我都引用了好久的。呵呵,还能帮到你,很高兴
2 楼 nvcxy_1225 2015-07-24  
Thanks。very thanks
1 楼 baojiarui 2014-08-05  
Thanks

相关推荐

    android ScrollView嵌套demo

    总之,解决ScrollView嵌套问题需要对Android的触摸事件处理机制有深入的理解,同时掌握正确的处理方法。通过学习和实践这个demo,开发者可以更好地掌握在Android应用中实现复杂滚动布局的技巧。

    ScrollView嵌套GridView不能滚动的问题解决方案

    ScrollView嵌套GridView不能滚动的问题解决方案 在 Android 开发中,我们经常会遇到 ScrollView 嵌套 GridView 的问题,导致页面不能滚动的问题。这个问题的出现是因为 ScrollView 和 GridView 都带有滚动条,当...

    Android ScrollView 嵌套解决方案

    首先,理解ScrollView的基本工作原理是解决问题的关键。ScrollView本质上是一个线性布局(LinearLayout)的扩展,它可以容纳一个或多个子视图,并允许用户滚动查看超出屏幕范围的内容。当一个ScrollView包含另一个...

    Android ScrollView嵌套横向滑动控件时冲突问题

    前言:今天在开发的时候遇到这样的问题,最外层是ScrollView,里面嵌套了一个横向滑动的日历控件,在滑动日历的时候很卡顿。看到这种问题,自然而然的就会想到scrollview和其他可滑动控件的冲突问题。 解决思路 用户...

    解决Scrollview嵌套listview下拉刷新的一些问题

    ScrollView嵌套ListView可能导致性能下降,因为两者都会处理滑动事件,增加渲染负担。 **最佳实践**: 1. 避免在ScrollView中嵌套ListView,尽可能使用RecyclerView替代ListView,因为它更高效且支持多种滚动效果。...

    Android ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多

    总的来说,Android开发中的ScrollView嵌套ListView和GridView是一项挑战,但通过巧妙地使用SwipeRefreshLayout、自定义适配器和滚动事件处理,我们可以构建出高效且功能丰富的用户界面。同时,不断优化性能和用户...

    ScrollView嵌套RecycleView解决高度不适配

    以上就是解决ScrollView嵌套RecyclerView高度不适配和滑动不顺畅问题的一些常见方法。在实际开发中,应根据项目需求和性能考虑选择最合适的方法。同时,注意优化数据加载和渲染,避免因大量数据加载导致的卡顿,提升...

    Android scrollview嵌套listview

    总之,处理Android ScrollView嵌套ListView的冲突需要对Android的嵌套滚动机制有深入的理解。通过使用NestedScrollView、RecyclerView以及适当的配置和事件处理,可以创建流畅、响应式的用户界面,同时避免滚动冲突...

    ScrollView嵌套ScrollView滑动

    总的来说,处理ScrollView嵌套ScrollView的滑动问题需要理解Android事件分发机制,并且可能需要利用nested scrolling特性或者自定义逻辑来实现滑动事件的正确分发。对于不同API级别的设备,可能需要采取不同的策略来...

    研究ScrollView嵌套ViewPager问题的Demo

    在Android开发中,ScrollView和...总之,处理ScrollView嵌套ViewPager的问题需要对Android的布局机制和触摸事件处理有深入的理解。通过不断学习和实践,你不仅可以解决眼前的问题,还能提升自己的Android开发技能。

    android scrollview嵌套listview

    当ScrollView嵌套ListView时,会涉及到一些特殊的处理和优化,因为这可能会导致性能问题和用户体验上的挑战。 首先,我们要明白为什么要在ScrollView中嵌套ListView。通常,这种布局设计可能是因为我们有一个大的...

    解决Android中ListView和ScrollView嵌套冲突

    解决ListView和ScrollView嵌套冲突的一种常见方法是避免直接在ScrollView内使用ListView。如果数据量不大,可以考虑改用LinearLayout或者NestedScrollView,它们可以更好地与ScrollView协同工作。但对于大数据集,...

    解决ScrollView嵌套ListView Demo

    通过上述方式,我们可以有效地解决ScrollView嵌套ListView的滚动冲突问题,使得两者能够协同工作,提供良好的用户体验。在"demo"项目中,你可以找到一个实际的应用示例,通过运行和调试,更深入地理解这个解决方案的...

    Scrollview嵌套RecyclerView

    在Android开发中,ScrollView通常用于实现可滚动的内容区域,而RecyclerView是一种更高效、更灵活的视图复用组件,常用于展示大量数据列表。当在一个ScrollView中嵌套一个RecyclerView时,可能会遇到一些常见问题,...

    scrollview嵌套问题总汇

    本篇文章将详细探讨“ScrollView嵌套问题总汇”,包括S嵌L(ScrollView嵌套ListView)、S嵌G(ScrollView嵌套GridView)、S嵌S(ScrollView嵌套ScrollView)、H嵌G(HorizontalScrollView嵌套GridView)以及S嵌(H嵌G...

    ScrollView嵌套ListView刷新

    为了解决ScrollView嵌套ListView的刷新问题,有几种常见策略: 1. **使用NestedScrollView**:NestedScrollView是Android支持库提供的一种特殊类型的ScrollView,它支持嵌套滚动。这意味着它可以与另一个可以滚动的...

    详解Android ScrollView嵌套EditText出现的滑动问题

    Android ScrollView 嵌套 EditText 滑动问题解决方案 Android 中的 ScrollView 和 EditText 是两个常用的 UI 组件,前者可以提供滚动功能,而后者可以接受用户的输入。然而,当我们将 EditText 嵌套在 ScrollView ...

    android ScrollView嵌套ListView,并且实现动态添加ListView里的Item

    然而,将ScrollView嵌套在ListView中可能会引发一些问题,因为这两个组件都是可滚动的,它们的组合可能导致滚动冲突。本文将探讨如何解决这个问题,并实现动态添加ListView中的Item。 首先,我们来看ScrollView的...

    Android解决ListView嵌套ScrollView不能刷新

    总的来说,解决Android中ListView嵌套ScrollView不能刷新的问题需要理解Android的滚动机制,合理选择或定制组件,以及优化布局设计。通过实践和学习,开发者可以克服这个挑战,实现流畅的用户界面。

Global site tag (gtag.js) - Google Analytics