Подтвердить что ты не робот

Изменение окнаSoftInputMode для фрагментов внутри viewpager

У меня есть ViewPager с двумя разными фрагментами. Для первого фрагмента я хотел бы определить его так, чтобы он не изменялся при открытии мягкой клавиатуры. Для второго фрагмента я хотел бы изменить его размер.

Установка android:windowSoftInputMode="adjustPan" внутри манифеста будет работать для обоих фрагментов, но я хочу изменить их между двумя.

Что я сделал после поиска в Google:

    // create ContextThemeWrapper from the original Activity Context with the custom theme
    Context context = new ContextThemeWrapper(getActivity(), R.style.NoResize);
    // clone the inflater using the ContextThemeWrapper
    LayoutInflater localInflater = inflater.cloneInContext(context);
    // inflate using the cloned inflater, not the passed in default
    return localInflater.inflate.inflate(R.layout.my_layout,container,false);

Я определил тему следующим образом:

<style name="NoResize" parent="@style/AppTheme">
    <item name="android:windowSoftInputMode">adjustPan</item>
</style>

Активность определяется по умолчанию windowSoftInputMode, который изменяет размеры просмотров, когда открывается программная клавиатура.

Будет работать над этим до тех пор, пока он не будет решен, но если кто-то еще столкнется с этой проблемой и решит ее, было бы замечательно услышать любые мысли.

Спасибо!

4b9b3361

Ответ 1

Вы можете вызвать каждый onCreateView

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

проверить http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#SOFT_INPUT_ADJUST_RESIZE

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