Intereting Posts
Приложение OCR для Android, использующее Tesseract Почему Google играет скрыть android.permission.VIBRATE для некоторых приложений? Получить информацию о текущем медиафайле, воспроизводимом в Android-плеерах Content Observer onChange метод, вызываемый дважды после 1 изменения курсора Ошибка компиляции в «Использовать пример входа в Facebook» Listview не обновляется при вызове notifydatasetchanged () Ошибка при импорте проекта Eclipse в Android Studio AppBarLayout занимает пробел после setVisibility (View.GONE) Чтение и запись данных через USB-порт на Android 3.1 HttpURLConnection: java.lang.IllegalStateException: уже подключено Сбой сборки Gradle в Android Studio 1.5.1 Что происходит, когда вы нажимаете значок запуска приложения? Получение выделенного текста в WebView через контекстную панель действий Невозможно подключиться к серверу с помощью ключей BKSore Логика для использования нескольких веб-просмотров в TabLayout для решения проблемы памяти

OnTouchListener по невидимому виду

Поэтому все, что я хочу сделать, это коснуться определенной части экрана, где скрыто невидимое представление.

После этого касания взгляд должен исчезать. Проблема: прослушиватель не срабатывает, я касаюсь вида.

Вещи, которые я пробовал: view.setImageAlpha (0), view.setAlpha (0), view.setVisibility (View.INVISIBLE) Когда я устанавливаю альфа = 1, слушатель отлично работает.

Заранее спасибо.

Редактировать: Спасибо @Viswanath L за отличное решение, которое он упомянул в своем посте в качестве второго обходного пути.

Я просто хотел привести пример небольшого кода для этого, если кто-то не знает, как это работает:

Я хочу: я хочу коснуться правого угла экрана, и на этом месте вид (myView) должен исчезнуть.

fadeInListener = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { System.out.println("TRIGGERED"); //The screen size here is 1080x1920(vertical) if (event.getRawX() > 800 && event.getRawY() > 1640) { final AlphaAnimation fadeIn = new AlphaAnimation(0, 1); fadeIn.setDuration(500); fadeIn.setFillAfter(true); myView.startAnimation(fadeIn); } } return false; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); layout.setOnTouchListener(fadeInListener); } 

Макет:

 this.layout = (RelativeLayout) findViewById(R.id.layout); 

И myView должен быть помещен в правый угол, и что очень важно:

 myView.setVisibility(View.Gone); 

Надеюсь это поможет.

    INVISBLE означает, что вы пытаетесь добавить слушателя к виду, которого нет. Вы можете добавить слушателя только к видимому виду.

    Временное решение

    1) Попробуйте сделать фиктивный вид, который будет виден, но с тем же цветом, что и фон.

    2) Постарайтесь установить слушатель для родителя и проверить позицию (независимо от того, принадлежит ли позиция к виду INVIVIBLE).

    onTouchListener не запускает невидимый View . Вы можете сделать 2 точно одинаковых вида один под другим, один из которых имеет карту. Он будет виден, и поэтому его можно коснуться, но он будет скрыт по виду выше, как они здесь: http://blahti.wordpress.com/2012/06/26/images-with-clickable-areas/

    Попробуйте это в своем xml:

     <View android:id="@+id/my_inv_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/blue" /> <View android:id="@+id/my_touch_view" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

    И настройте прослушиватель кликов следующим образом:

     final View mTouchView = findViewById(R.id.my_touch_view); final View mInvView = findViewById(R.id.my_inv_view); mInvView.setVisibility(View.INVISIBLE); mTouchView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mInvView.setVisibility(View.VISIBLE); } });