2013-05-07 8 views
32

Mam ViewPager z 2 różnymi fragmentami. Dla pierwszego fragmentu chciałbym zdefiniować go tak, aby nie zmieniał rozmiaru po otwarciu miękkiej klawiatury. Dla drugiego fragmentu chciałbym zmienić jego rozmiar.Varying windowSoftInputMode dla fragmentów wewnątrz viewpagera

Ustawienie wewnątrz manifestu będzie działać dla obu fragmentów, ale chcę je zmieniać między tymi dwoma.

Co zrobiłem po google przeszukuje:

// 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); 

Mam zwyczaj zdefiniowane motywu być:

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

Aktywność określa się z domyślnym windowSoftInputMode który zmienia rozmiar widoki kiedy softkeyboard otwiera się.

Będzie pracować nad tym, dopóki nie zostanie rozwiązany, ale jeśli ktoś inny ma ten problem i rozwiązany, byłoby świetnie usłyszeć jakiekolwiek myśli.

Dzięki!

Odpowiedz

52

można wezwać każdego onCreateView

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

czeku http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#SOFT_INPUT_ADJUST_RESIZE

W moim przypadku, to nie rozwiąże problemu, bo mam przezroczysty fragment (okno czatu), które muszę zmienić rozmiar, a fragment na dole nie powinien. ale myślę, że może ci się przydać.

+0

Moxor, nie bardzo rozumiem, jaki masz problem, ale możesz chcieć otworzyć własne pytanie, aby opisać je bardziej szczegółowo. Na pytanie zadane tutaj - zmiana trybu miękkiego wprowadzania okna - twoja odpowiedź jest poprawna. Mogą istnieć przypadki takie jak twoje, w których tryb miękkiego wprowadzania okna nie jest wystarczający, ale nie ma jednego rozwiązania dla wszystkich takich przypadków; zależy to od natury konkretnego problemu. –

+0

Dzięki, prawdopodobnie otworzę nowe pytanie. Moim szczególnym problemem było posiadanie dwóch widocznych Fragmentów w tym samym czasie i oczekiwanie innego zachowania dla każdego z nich – Moxor

Powiązane problemy