Как остановить прокрутку, когда пользовательский вид имеет touchlisteners в android?

Я динамически добавляю пользовательские представления к относительным макетам.

В моем пользовательском представлении у меня есть дочерний вид, который можно перетаскивать влево и вправо. Все работает нормально только с одним видом в Relative layout. Но когда есть несколько просмотров, события ACTION_UP не вызываются для перетаскивания дочерних представлений. поэтому, я хочу остановить прокрутку, когда пользователь касается перетаскивания childView.

Основной xml:

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" tools:context=".MainActivity">


 <com.example.dynamicscroll.observablescrollview android:id="@+id/mainScrollView" android:layout_width="fill_parent" android:layout_height="fill_parent">


 <horizontalscrollview android:layout_width="wrap_content" android:layout_height="fill_parent"> 

 <relativelayout android:id="@+id/relativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent">

 </relativelayout></horizontalscrollview>
 </com.example.dynamicscroll.observablescrollview>
 </relativelayout>

inflatedfeedmodebloops.xml:

<!--?xml version="1.0" encoding="utf-8"?-->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ababab" android:orientation="vertical">

 <relativelayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/transparent"> 


 <com.example.dynamicscroll.constraineddraganddropview android:id="@+id/dndView" android:layout_width="fill_parent" android:layout_height="wrap_content"> 

 <imageview android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_margintop="20dp" android:background="@drawable/like_small" android:id="@+id/dummy" android:visibility="gone"> 

 <relativelayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="10dp" android:id="@+id/images">

 <!-- left circle -->
 <relativelayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_alignparentleft="true" android:layout_centervertical="true" android:id="@+id/half_left">


 <imageview android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_margintop="20dp" android:background="@drawable/like_small" android:id="@+id/like_image"> 

 <textview android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_margintop="10dp" android:layout_below="@+id/like_image" android:text="36" android:textsize="25dp" android:textcolor="#DF013A" android:id="@+id/likes_count">

 </textview></imageview></relativelayout>
 <!-- end of left circle -->
 <!-- <ImageView 
 android:layout_height="wrap_content"
 android:layout_width="wrap_content"
 android:layout_toLeftOf="@+id/img_1"
 android:background="@drawable/pinkcircle"
 android:id="@+id/full_left"
 android:layout_centerVertical="true"
 android:visibility="gone"

 />
 -->
 <!-- right circle -->
 <imageview android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignparentright="true" android:id="@+id/backbtn" android:layout_centerinparent="true">

 <!-- end of right circle -->

 <!-- cartoon image -->

 <relativelayout android:layout_width="200dp" android:layout_height="200dp" -----="">I want to drag this image,so I want to stop
 scrolling when user touches this view. 

 android:layout_centerHorizontal="true"
 android:background="@drawable/img_1"
 android:layout_marginTop="20dp"
 android:id="@+id/cartoon_image"> 

 <imageview android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/like_small" android:layout_centerinparent="true" android:id="@+id/ivheart" android:visibility="gone"> 

 <relativelayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/play_btn" android:orientation="horizontal" android:layout_centerinparent="true" android:id="@+id/play_btn">


 </relativelayout>
 </imageview></relativelayout> 

 <!-- end of cartoon image --> 

 </imageview></relativelayout>

 </imageview></com.example.dynamicscroll.constraineddraganddropview> 



 </relativelayout> 

</linearlayout>

Для добавления видов в относительную компоновку:

for(int i=0;i
<p> Итак, кто-нибудь может предложить мне, как я могу остановить прокрутку, когда пользователь касается детского просмотра.</p>
1 ответ

Используйте следующий код, чтобы остановить прокрутку родительского вида при касании childview

if (childView != null && parentView != null) {

 childView.setOnTouchListener(new View.OnTouchListener() {
 @Override
 public boolean onTouch(View v, MotionEvent event) {
 findViewById(R.id.parent_view).getParent()
 .requestDisallowInterceptTouchEvent(false);
 return false;
 }
 });

}

licensed under cc by-sa 3.0 with attribution.