2015-03-01 6 views
0

Эй, сейчас я разрабатываю приложение, которое содержит форму, с некоторыми полями edittext, некоторыми флажками и переключателем в конце. Раскладка выглядит следующим образом:Android: коммутатор теряет фокус после нажатия

<RelativeLayout> 
    <ScrollView> 
    <LinearLayout> 
     <LinearLayout> 
     <TextView></TextView> 
     <Checkbox></Checkbox> 
     </LinearLayout> 
     <LineraLayout> 
     <TextView></TextView> 
     <EditText></EditText> 
     </LinearLayout> 
     <LinearLayout> 
     <TextView></TextView> 
     <Switch></Switch> 
     </LinearLayout> 
    </LinearLayout> 
    </ScrollView> 
</RelativeLayout> 

Так что теперь, если я нажимаю выключатель, переключатель теряет фокус и Scrollview свитки первого элемента формы, флажок. Я уже пытался использовать атрибут descendantFocusability с «blockDescendants» в верхнем LinearLayout коммутатора, но он не работает.

У кого-нибудь есть идея, как решить эту проблему?

ответ

0

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

В моем коде была определенная функция, которая вызывает метод setVisibility(View.Visible) для всех моих элементов формы (это используется в моем проекте для отображения возможных элементов формы зависимых элементов, которые должны отображаться только тогда, когда пользователь нажимает на флажок или еще). Если я нажму на переключатель или флажок, мой код вызывает метод setVisibility для всех элементов формы, также для Edittext. Это запрашивает фокус, и поэтому прокрутка просматривает этот элемент до середины/фокуса экрана. Я решил проблему, не вызвав метод setVisibility для объектов, которые уже видны.

Надеюсь, это может быть полезно для кого-то еще ;-)

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