2013-05-07 13 views
32

Ich habe einen ViewPager mit 2 verschiedenen Fragmenten. Für das erste Fragment möchte ich es so definieren, dass es auf der weichen Tastaturöffnung seine Größe nicht ändert. Für das zweite Fragment würde ich gerne die Größe ändern lassen.Varying windowSoftInputMode für Fragmente im Viewpager

Die Einstellung android:windowSoftInputMode="adjustPan" innerhalb des Manifests funktioniert für beide Fragmente, aber ich möchte sie zwischen den beiden variieren.

Was ich nach Google getan sucht:

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

Ich habe benutzerdefinierte das Thema definiert sein:

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

Die Aktivität wird mit Standard windowSoftInputMode definiert, die die Ansichten ändert die Größe, wenn Softkeyboard eröffnet.

Wird daran arbeiten, bis es gelöst wird, aber wenn jemand anderes dieses Problem hat und es gelöst, wäre es toll, irgendwelche Gedanken zu hören.

Danke!

Antwort

52

Sie auf jedem onCreateView

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

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

In meinem Fall anrufen können, das löst nicht das Problem, weil ich ein transparentes Fragment (ein Chat-Fenster) habe, die ich brauche, um Größe ändern und das Fragment auf der Unterseite sollte nicht. aber ich denke, es könnte dir nützlich sein.

+0

Moxor, ich verstehe nicht ganz, welches Problem Sie haben, aber Sie möchten vielleicht Ihre eigene Frage öffnen, um sie genauer zu beschreiben. Für die hier gestellte Frage - Ändern des Soft-Eingabemodus des Fensters - ist Ihre Antwort korrekt. Es kann Fälle geben, in denen der Soft-Input-Modus des Fensters nicht ausreicht, aber es gibt keine einzige Lösung für alle Fälle. Es hängt von der Art Ihres speziellen Problems ab. –

+0

Danke, ich werde wahrscheinlich eine neue Frage eröffnen. Mein besonderes Problem war, zwei sichtbare Fragmente gleichzeitig zu haben und unterschiedliche Verhaltensweisen zu erwarten – Moxor

Verwandte Themen