2013-12-23 4 views
1

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

ответ

6

Вы можете отключить все представления рекурсивно, как это. Просто передать макет в целях метода:

private void enableViews(View v, boolean enabled) { 
    if (v instanceof ViewGroup) { 
     ViewGroup vg = (ViewGroup) v; 
     for (int i = 0;i<vg.getChildCount();i++) { 
      enableViews(vg.getChildAt(i), enabled); 
     } 
    } 
    v.setEnabled(enabled); 
} 

Просто запустите enableViews(view, false) отключить или enableViews(view, true), чтобы включить снова.

+0

этим я могу отключить мое мнение в действии. Могу ли я включить мой просмотр на каком-то слушателе, используя setEnabled (true) вместо setEnabled (false) для первоначально отключенного представления. –

+0

уверен, я обновил ответ, чтобы быть более гибким. – flx

+0

это хорошо работает .. замечательная работа flx –

1

использовать следующий атрибут в макете XML (в качестве примера TextView)

android:visibility="gone" 

в случае нажатия кнопки

myText.setVisible(myText.VISIBLE) 

вы можете использовать их один за другим, или вы можете поместить все невидимое содержимое в одном макете и скрыть макет. затем, как только вы захотите их показать, просто ВИДИМЬ макет. то все отобразится

нужно больше комментариев .. просто комментарий.

+0

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

+0

Большое спасибо. Я думал, что будет встроенный способ. –

+0

благодарит за просмотр. Я могу заставить отключить более интерактивное использование цветов. Большое спасибо. –

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