2012-05-07 2 views
0

У меня есть макет, называемый контроллером. У меня есть пара кнопок и такая проблема в моей функции onTouch. Я хочу показать ее одним щелчком мыши и скрыть ее на другом. Теперь это работает после 2 касаний. Первое касание должно показать контроллер, в то время как следующий должен заставить его исчезнуть. Первое и второе касание ничего не делают, кроме как на третьем касании, которое он работает. Вот связанные функции для этогоsetVisibilty() не работает первый раз

Может ли кто-нибудь сказать, в чем проблема? Я смотрю на этот код пару дней и не могу понять, что это может быть.

+1

это java или андроид? если это так, то пометка как таковая может быть полезна. –

+0

Что это? Ява? это для Android? Добавьте язык и другие соответствующие теги, и люди могут вам помочь. – MilkyWayJoe

+0

android Я забыл положить это – Raigex

ответ

0

Несколько указателей об этом коде:

  • Переменная isLifted предположительно начинается ложь, и на первом сенсорном случае, если он не вызывает ничего случиться на вниз события. Когда пользователь поднимает свой палец, переменной присваивается значение true, поэтому второе событие может быть фактически обработано. Это означает, что первое касание никогда не будет иметь видимого эффекта.
  • Вы используете isVisible boolean вместо того, чтобы просто проверять видимость самих компонентов. Это упрощает их синхронизацию.

Без полного класса трудно сказать, но я бы исследовал оба эти пункта.

+0

Переменная isLifted начинается с истины, так что это не проблема. Другой был. Видимость была не в синхронизации, я думаю. Я изменился на getVisibilty == View.Gone, и теперь он работает так, как должен. – Raigex

0

При разработке xml создайте виджет android:visibility="gone". Во время проверки программы проверьте состояние, если его скрытый onclick установлен View.VISIBLE и если он виден на втором касании View.GONE.

Я думаю, что это сработает. Попробуйте один раз.

Смежные вопросы