1

Я использую [SlidingMenu] [1] в своем приложении. Я использую Viewpager для отображения трех фрагментов во вкладках в фрагменте. Три фрагмента имеют EditTexts внутри LinearLayouts, которые находятся в ScrollView. Итак, My XML XMl выглядит так:Мягкая клавиатура всплывает и медленно скрывается во фрагменте и делает ввод вялым

RelativeLayout>ScrollView>LinearLayout>EditText.

После того, как фокус изменен на каждый EditText, ввод начинается очень медленно (требуется 1-2 секунды для ответа). Я думал, что это из-за Soft-клавиатуры, которая пытается изменить размер или панорамировать каждый раз. Поэтому я попробовал все возможные значения для windowSoftInputMode. Ничего не работает. Я использовал тот же XML в Activity, где типизация очень плавная. Также после ввода текста (когда пользователь нажимает кнопку IME done), скрытие клавиатуры очень медленное (занимает 3 секунды). В чем может быть проблема? и любого обходного пути, которого следует избегать?

Кстати, у меня нет TextWatchers для EditTexts.

Edit:

Когда я удалить EditTexts из двух других фрагментов, это гладко. Но только тогда, когда все три фрагмента имеют EditTexts, это вяло.

+0

'softInputMode' объявляет только, если/как ваша экранная клавиатура должна быть видимой, это не повлияет на скорость. Не могли бы вы разместить какой-то код? – Squeazer

+0

@ Squeazer Я понял, что набирать текст очень быстро, когда представление действительно настроено. Но это требует времени, чтобы настроить, так что пока пользовательский тип, он становится вялым. –

+0

@ Squeazer посмотреть в мой отредактированный вопрос –

ответ

2

Я избегал этого, добавляя android:windowSoftInputMode="adjustNothing", который не меняет размер и не прокручивает. И добавил слушателей Focus для редактирования текстов, которые находятся в нижней части экрана, чтобы они стали видимыми для пользователей при наборе текста.

editText.setOnFocusChangeListener(new OnFocusChangeListener() { 

      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       if (hasFocus) { 
        scroll.scrollTo(rootView.getWidth(), rootView.getHeight()); //rootView is my parentView of the fragment 
       } 

      } 
     }); 

Однако, если кто-либо знает элегантное решение, отправьте его.

+0

Life Saver .. Спасибо – Sayka