Ich habe ein <ScrollView>
Layout:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/my_scrollview"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
>
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical" >
<EditText
Android:id="@+id/input_one"
Android:layout_width="300dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:inputType="number" >
<EditText
Android:id="@+id/input_two"
Android:layout_width="300dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:inputType="number" >
<EditText
Android:id="@+id/input_three"
Android:layout_width="300dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:inputType="number" >
<Button
Android:id="@+id/ok_btn"
Android:layout_width="200dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginTop="20dp"
Android:text="@string/ok_str" />
</LinearLayout>
</ScrollView>
Wie Sie oben sehen, besteht das einfache Layout aus drei Eingabefeldern und einer Schaltfläche "Ok".
Ich starte meine App mit dem obigen Layout. Wenn ich auf das erste Eingabefeld (@+id/input_one
) tippe, wird die Softtastatur am unteren Bildschirmrand eingeblendet. Sie verbirgt das dritte Eingabefeld und "Ok" " Taste.
Da ich <ScrollView>
verwende, dachte ich, ich kann die Seite nach oben scrollen, um das 3. Eingabefeld und die Schaltfläche "Ok" zu sehen, die versteckt von der Softtastatur, aber die Seite kann nicht gescrollt werden . Warum? Wie kann man es loswerden? Grundsätzlich möchte ich alle Eingabefelder und "Ok" -Button sehen, auch die Softtastatur ist aufgetaucht.
Ich habe mein Problem behoben, indem Sie das folgende Attribut in <activity>
von AndroidManifest.xml definiert haben.
Android:windowSoftInputMode="stateVisible|adjustResize"
Ok, ich habe jetzt mehrere Stunden gesucht, um das Problem zu finden, und ich habe es gefunden.
Keine der Änderungen wie fillViewport="true"
oder Android:windowSoftInputMode="adjustResize"
hat mir geholfen.
Ich verwende Android 4.4 und das ist der große Fehler:
Android:theme="@Android:style/Theme.Black.NoTitleBar.Fullscreen"
Irgendwie verhindern die Vollbild-Designs, dass die ScrollViews blättern, wenn das SoftKeyboard angezeigt wird.
Im Moment habe ich stattdessen dieses verwendet:
Android:theme="@Android:style/Theme.Black.NoTitleBar
Ich weiß nicht, wie ich die obere Systemleiste mit der Zeit- und Batterieanzeige loswerden kann, aber zumindest habe ich das Problem.
Ich hoffe, das hilft anderen, die das gleiche Problem haben.
EDIT: Ich habe eine kleine Problemumgehung für meinen Fall erhalten, also habe ich es hier veröffentlicht:
Ich bin nicht sicher, ob dies für Sie funktionieren wird, aber es wird Ihnen auf jeden Fall beim Verständnis helfen und einige Dinge klären.
EDIT2: _ Here ist ein weiteres gutes Thema, das Ihnen hilft, in die richtige Richtung zu gehen oder Ihr Problem sogar zu lösen.
Für mich ist das einzige, was funktioniert, in der Aktivität im Manifest dieses Attributs:
Android:windowSoftInputMode="stateHidden|adjustPan"
Die Tastatur beim Öffnen der Aktivität nicht anzeigen und den unteren Rand der Ansicht nicht überlappen.
in Ihrer Manifest
-Eigenschaft windowSoftInputMode
definieren <activity Android:name=".MyActivity" Android:windowSoftInputMode="adjustNothing">
fügen Sie dies in Ihr Manifest wie folgt im Kein Vollbildmodus ein
Android:windowSoftInputMode="stateVisible|adjustPan"
in deinem Manifest
<activity
Android:windowSoftInputMode="stateVisible|adjustPan"
Android:name="com.example.patronusgps.MainActivity"
Android:label="@string/app_name" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Fügen Sie in der Android-Manifest-Datei unter dem Aktivitäts-Tag eine Codezeile hinzu
Android:windowSoftInputMode="adjustResize"
schau dir das an.
<activity Android:name=".Calculator" Android:windowSoftInputMode="stateHidden|adjustResize" Android:theme="@Android:style/Theme.Black.NoTitleBar"></activity>
Das hat nur für mich funktioniert:
Android:windowSoftInputMode="adjustPan"
Sie können versuchen, den folgenden Code zu verwenden, um Ihr Problem zu lösen:
<activity
Android:name=".DonateNow"
Android:label="@string/title_activity_donate_now"
Android:screenOrientation="portrait"
Android:theme="@style/AppTheme"
Android:windowSoftInputMode="stateVisible|adjustPan">
</activity>
Wenn Sie dies programmgesteuert tun möchten, fügen Sie einfach die folgende Zeile zum onCreate der Aktivität hinzu.
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE |
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE );