Variierender windowSoftInputMode für Fragmente innerhalb des Viewpagers

Lesezeit: 2 Minuten

Ich habe einen ViewPager mit 2 verschiedenen Fragmenten. Für das erste Fragment möchte ich es so definieren, dass es sich beim Öffnen der Soft-Tastatur nicht in der Größe ändert. Für das zweite Fragment möchte ich die Größe ändern.

Einstellung der android:windowSoftInputMode="adjustPan" innerhalb des Manifests wird für beide Fragmente funktionieren, aber ich möchte es zwischen den beiden variieren.

Was ich nach der Google-Suche gemacht habe:

    // 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 das Thema wie folgt definiert:

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

Die Aktivität wird mit dem standardmäßigen windowSoftInputMode definiert, der die Größe der Ansichten ändert, wenn sich die Softkeyboard öffnet.

Ich werde daran arbeiten, bis es gelöst ist, aber wenn jemand anderes dieses Problem hat und es gelöst hat, wäre es großartig, irgendwelche Gedanken zu hören.

Vielen Dank!

  • irgendeine Lösung gefunden?

    – Adel Turk

    30. Juli 2018 um 16:36 Uhr

Benutzer-Avatar
Moxor

Sie können jede onCreateView aufrufen

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

überprüfen http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#SOFT_INPUT_ADJUST_RESIZE

In meinem Fall löst dies das Problem nicht, da ich ein transparentes Fragment (ein Chat-Fenster) habe, dessen Größe ich ändern muss und das Fragment unten nicht sollte. aber ich denke, es könnte dir nützlich sein.

  • Moxor, ich verstehe nicht ganz, welches Problem Sie haben, aber Sie möchten vielleicht Ihre eigene Frage öffnen, um sie detaillierter zu beschreiben. Für die hier gestellte Frage – Ändern des Soft-Input-Modus des Fensters – ist Ihre Antwort richtig. Es kann Fälle wie Ihren geben, in denen der Soft-Input-Modus des Fensters nicht ausreicht, aber es gibt keine einzige Lösung für alle diese Fälle; es wird von der Art Ihres speziellen Problems abhängen.

    – j__m

    3. Dezember 2013 um 5:35 Uhr

  • Danke, ich werde wahrscheinlich eine neue Frage eröffnen. Mein besonderes Problem bestand darin, zwei sichtbare Fragmente gleichzeitig zu haben und für jedes ein unterschiedliches Verhalten zu erwarten

    – Moxor

    3. Dezember 2013 um 13:05 Uhr

  • Scheint, als würde diese Methode erst funktionieren, nachdem Sie explizit einen Wert in AndroidManifest definiert haben. android:windowSoftInputMode="adjustPan" Außerdem sollte sich dieser Wert von unterscheiden adjustUnspecified. Ohne diese explizite Definition setSoftInputMode(...) Methode hat keine Auswirkung.

    – Duviteck

    21. August 2018 um 15:51 Uhr


1098470cookie-checkVariierender windowSoftInputMode für Fragmente innerhalb des Viewpagers

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy