2015-01-28 3 views
0

Я столкнулся с проблемой вязания. У меня есть два фрагмента в одном действии. Один из них - Фрагмент входа. У меня есть два текста редактирования в этом фрагменте. Некоторые устройства, которые были поданы, скрываются с помощью soft keyaboard i, указанного в моем манифесте, и это работает нормальноКак использовать «adjustPan» и «adjustResize» вместе

Когда пользователь нажимает кнопку на LoginFragment, я открываю еще один фрагмент с именем forgetpassword. Это веб-просмотр, и URL-адрес загружается с удаленного сервера. Но текстовое поле в html скрывается с помощью softkeyboard. Поэтому я попытался использовать adjustResize, и он работает нормально. Но мой виджет editText в loginfragment спрятан с клавиатуры.

Как я могу достичь обоих флагов в своей деятельности. Пожалуйста, помогите мне с этим.

ответ

1

Вы можете решить вашу проблему, запросив программно adjustPan и adjustResize.

Используйте следующий код для установки ajustPan, когда текущий фрагмент вашего LoginFragment:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

И используйте следующий код для установки ajustResize, когда текущий фрагмент вашего webview Fragment:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 
+0

При установке регулировки панорамирования в манифесте это работает правильно, но при попытке установить оба флага во фрагменте с флагами, как этот getActivity(). GetWindow(). SetSoftInputMode (WindowManager.LayoutParams .SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); Это не. –

+0

@DougRay Они не должны объединяться вместе, см. Https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#SOFT_INPUT_ADJUST_PAN –

-1

You может решить вашу проблему, установив adjustPan и adjustResize программно. Кроме того, в listview добавить android:transcriptMode="alwaysScroll"

0

adjustResize и adjustPan не могут быть объединены друг с другом. Это разные действия по умолчанию для предотвращения ввода мягкого ввода из поля ввода. Как указано в комментарии для WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN

/** Adjustment option for {@link #softInputMode}: set to allow the 
    * window to be resized when an input 
    * method is shown, so that its contents are not covered by the input 
    * method. This can <em>not</em> be combined with 
    * {@link #SOFT_INPUT_ADJUST_PAN}; if 
    * neither of these are set, then the system will try to pick one or 
    * the other depending on the contents of the window. If the window's 
    * layout parameter flags include {@link #FLAG_FULLSCREEN}, this 
    * value for {@link #softInputMode} will be ignored; the window will 
    * not resize, but will stay fullscreen. 
    */ 
    public static final int SOFT_INPUT_ADJUST_RESIZE = 0x10;