2011-06-09 145 views
0

我的應用程序需要2滾動視圖(sv1,sv2)。 sv1是主滾動視圖,sv2是sv1的子滾動視圖。 有可能嗎?那麼該怎麼做。android-如何把滾動視圖下滾動視圖

以下是我的答案。它僅在模擬器中工作,但在設備中不工作意味着設備支持sv1只有sv2不工作。

怎麼辦?

感謝

回答

0
<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> 

步驟1:提供獨特的ID既滾動視圖。 第2步:獲取活動中的兩個滾動視圖的引用。

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

第3步:現在設置兩個觸摸偵聽器。

 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; 
      } 
     }); 

做...