zoukankan      html  css  js  c++  java
  • Android ScrollView嵌套ScrollView滚动的问题解决办法

    引用:http://mengsina.iteye.com/blog/1707464 

    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="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@color/black"
            android:cacheColorHint="#00000000"
            android:fadingEdge="none"
            android:overScrollMode="never"
            android:scrollbars="none">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="vertical">
     
    
    
                    <ScrollView
                        android:id="@+id/child_scroll"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_toRightOf="@+id/TextView001"
                        android:cacheColorHint="#00000000"
                        android:fadingEdge="none"
                        android:overScrollMode="never"
                        android:scrollbars="none">
    
                        <TextView
                            android:id="@+id/tv_detail"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:padding="15dp"
                            android:textColor="@color/cbWhite"
                            android:textSize="@dimen/cb_textSize_big"/>
                    </ScrollView>
     
     
    
            </LinearLayout>
        </ScrollView>


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

        ScrollView parentScroll = (ScrollView) findViewById(R.id.parent_scroll);
        ScrollView 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) {
                    findViewById(R.id.child_scroll).getParent().requestDisallowInterceptTouchEvent(false);
                    return false;
                }
            });
            childScroll.setOnTouchListener(new View.OnTouchListener() {
    
                public boolean onTouch(View v, MotionEvent event) {
                    // Disallow the touch request for parent scroll on touch of child view
                    v.getParent().requestDisallowInterceptTouchEvent(true);
                    return false;
                }
            });



    Done …

  • 相关阅读:
    [Silverlight]常见问题
    [C#]有趣的VS扩展DebuggerVisualizer
    [EF5.0CODE FIRST]多对一及自关联映射的处理
    自定义控件传值
    关于.Net中类型转换ToInt32
    SQL版整数转IP
    SQL2008 Merge关键字用法与简例
    SQL语句,同时返回结果集,输出参数的值及return值
    多线程与异步操作实现的探讨
    SQL Prompt4 破解版
  • 原文地址:https://www.cnblogs.com/niray/p/4600391.html
Copyright © 2011-2022 走看看