OnClickListener on scrollView
It is because the child of the ScrollView
is getting the touch event of the user and not the ScrollView
. You must set android:clickable="false"
attribute to each and every child of the ScrollView
for the onClickListener
to work on ScrollView
.
Or else the alternate could be to set the onClickListener
on each of the ScrollView's children and handle it.
The best solution seem to put LinearLayout
into ScrollView
and set the setOnClickListener
on it.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/myLayout"
android:clickable="true"
android:orientation="vertical">
<!-- content here -->
</LinearLayout>
</ScrollView>
in the Activity :
LinearLayout lin = (LinearLayout) fragment.rootView.findViewById(R.id.myLayout);
lin.setOnTouchListener(new setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Whatever
}
});