wake-up-neo.com

Bildlauf, wenn die Softtastatur angezeigt wird

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.

78
Leem.fin

Ich habe mein Problem behoben, indem Sie das folgende Attribut in <activity> von AndroidManifest.xml definiert haben. 

Android:windowSoftInputMode="stateVisible|adjustResize"
102
Leem.fin

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. 

34
qweret

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">

10
Mohammad Ersan

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>
9
user3594530

Fügen Sie in der Android-Manifest-Datei unter dem Aktivitäts-Tag eine Codezeile hinzu

Android:windowSoftInputMode="adjustResize"
6
Bilal Ahmad

schau dir das an.

<activity Android:name=".Calculator" Android:windowSoftInputMode="stateHidden|adjustResize" Android:theme="@Android:style/Theme.Black.NoTitleBar"></activity>
3
Ravi1187342

Das hat nur für mich funktioniert:

Android:windowSoftInputMode="adjustPan"
2
blueware

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 );
0
ucMedia