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 …

  • 相关阅读:
    vue table 固定首列和首行
    手机号隐藏中间4位变成****
    微信小程序填坑之page[pages/XXX/XXX] not found.May be caused by
    table表格固定前几列,其余的滚动
    大文件切片功能
    js如何判断数字是否有小数
    获取当前时间前后6个月的时间数组
    为你的mail server增加SPF记录
    给hmailserver添加DKIM签名
    HttpWatch工具简介及使用技巧
  • 原文地址:https://www.cnblogs.com/niray/p/4600391.html
Copyright © 2011-2022 走看看