2013-10-02 4 views
0

У меня есть SurfaceView с LinearLayout, который скрывает или показывает, если вы нажмете на SurfaceView. Проблема заключается в том, что SurfaceView не обновляется, поэтому, если функция setVisibility (View.VISIBLE) фактически не работает.setVisibility() не обновляет UI Android

Это код, я использую:

sv.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) 
      { 
       Log.d("MainActivity-onCreate-onClick-buttons", 
         buttonsVisibility.toString()); 
       if (buttonsVisibility) 
       { 
        linearLayoutButtons.setVisibility(View.INVISIBLE); 
        buttonsVisibility = false; 
       } else 
       { 
        linearLayoutButtons.setVisibility(View.VISIBLE); 
        buttonsVisibility = true; 
       } 

      } 
     }); 

По умолчанию buttonVisibility устанавливается в ложь и в первый раз, я нажимаю мнение, что на самом деле это так, поэтому логики последовательны, единственная проблема заключается в том, что Кажется, что свойство setVisibility не действует. Только если я включаю/выключаю экран, я могу правильно отобразить макет, а затем правильно работать. Почему мне нужно отключить экран, чтобы обновить интерфейс? Не следует ли обновлять его автоматически после setVisibility?

Большое спасибо

ответ

0

Я не знаю, почему, но если я меняю кнопки, чтобы быть ImageButtons это работает, но кнопки появляются с неправильным «Z-индекс», где бы я их. Мне нужно нажать один раз на них, чтобы исправить «z-index». Если я изменяю setVisibility (View.INVISIBLE) с помощью setVisibility (View.GONE), все работает нормально.

Надеюсь, это может быть полезно для кого-то с той же проблемой.

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