OnClickListener на scrollView

У меня есть scrollView с множеством элементов

ScrollView scroller = (ScrollView)findViewById(R.id.scrollView); 

Мне нужно прикрепить onClickListener к scrollview, чтобы я сделал

 scroller.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // This is all you need to do to 3D flip AnimationFactory.flipTransition(viewAnimator, FlipDirection.LEFT_RIGHT); } }); 

Но это не срабатывает, когда я касаюсь. Есть идеи?

Это связано с тем, что дочерний ScrollView получает событие касания пользователя, а не ScrollView . Вы должны установить атрибут clickable = false для каждого дочернего элемента ScrollView для onClickListener для работы с ScrollView .

Или альтернативой может быть установка onClickListener на каждом из дочерних элементов ScrollView и управление им.

Лучшее решение, похоже, помещает LinearLayout в ScrollView и устанавливает на нем setOnClickListener .

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/myLayout" android:clickable="true" android:orientation="vertical"> <!-- content here --> </LinearLayout> </ScrollView> 

В Управлении:

 LinearLayout lin = (LinearLayout) fragment.rootView.findViewById(R.id.myLayout); lin.setOnTouchListener(new setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Whatever } }); 

Вам нужно установить setOnClickListener непосредственно на дочерний элемент ScrollView .

Поскольку ScrollView может иметь только один ребенок , вы можете просто использовать этот подход:

 ScrollView scrollView = //... View.OnClickListener mOnClickListener = new View.OnClickListener() { @Override public void onClick(View view) { // ... } //Set the onClickListener directly on the ScrollView's child scrollView.getChildAt(0).setOnClickListener(mOnClickListener); 
Intereting Posts
Этот класс обработчика должен быть статическим или может возникнуть утечка (com.test.test3.ui.MainActivity.1) Изображение не отображается полностью белым, несмотря на то, что оно правильно белое Android: что-то лучше, чем андроид: ellipsize = "end", чтобы добавить «…» к укороченным длинным строкам? Сила Закрыть приложение программно Как напечатать длинный текст? Есть ли предел AsyncTasks для выполнения одновременно? Почему Android onItemClick хочет иметь длинный идентификатор строки? Как получить сетевую силу в Android-приложении? Android ScrollView scrollTo () не работает с TextView? Как показать результаты поиска по умолчанию в Google Android по умолчанию? Задача очистки и начать новую деятельность Приложение Android внезапно падает при включении push-уведомлений Не удается увидеть отладочный вывод при запуске эмулятора Android. Android программно отключает автозаполнение / автозагрузку для EditText в эмуляторе Android: ошибка подключения к игровым игрокам Google (java.lang.IllegalStateException: должен быть подключен GoogleApiClient.)