Intereting Posts
Как начать работу с Android из приложения Unity? Как преобразовать успешный орган Response к определенному типу с помощью модификации? Присвоение фрагментов вкладкам в ActionBar с различной ориентацией Android – рисование в PDF-холсте из WebView Библиотека просмотра или фрагмента для создания пользовательского интерфейса для общих типов данных Функция, которая возвращает видимость Как сделать градиентный фон в андроиде Настроить игры libgdx для «планшета» Форма кольца в андроиде Как я могу реализовать горизонтальное прокручивание, не используя библиотеку поддержки? Android 4.0.3 ACTION_INSERT_OR_EDIT не работает Android – настройка вкладок sherlock для панели действий Bambuser ffmpeg – «arm-linux-androideabi-gcc не может создать исполняемый файл». Как реализовать getfilter () с пользовательским адаптером, который расширяет базовый адаптер Как вызвать перерисовку родительского представления, когда кто-либо из его детей перерисовывается?

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

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

Solutions Collecting From Web of "OnClickListener на scrollView"

Это связано с тем, что дочерний 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);