it-swarm.com.de

Verhindern, dass die Tastatur beim Aktivitätsstart angezeigt wird

Ich habe eine Aktivität mit einer Edit Text-Eingabe. Wenn die Aktivität initialisiert wird, wird die Android-Tastatur angezeigt. Wie kann die Tastatur ausgeblendet bleiben, bis der Benutzer die Eingabe fokussiert?

222
Fcoder

Ich denke, das Folgende kann funktionieren

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

Ich habe es schon für so etwas benutzt.

378
Lucas

Versuchen Sie dies auch - 

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Andernfalls geben Sie in der Aktivität Ihrer Manifestdatei an, 

<application Android:icon="@drawable/icon" Android:label="@string/app_name">
<activity Android:name=".Main"
          Android:label="@string/app_name"
          Android:windowSoftInputMode="stateHidden"
          >

Wenn Sie Android:windowSoftInputMode bereits für einen Wert wie adjustResize oder adjustPan verwendet haben, können Sie zwei Werte wie folgt kombinieren:

<activity
        ...
        Android:windowSoftInputMode="stateHidden|adjustPan"
        ...
        >

Dadurch wird die Tastatur wann immer möglich ausgeblendet, schwenken Sie jedoch die Aktivitätsansicht, falls die Tastatur angezeigt werden muss.

163
Praveenkumar

Blenden Sie es für alle Aktivitäten aus, die das Thema verwenden

<style name="MyTheme" parent="Theme">
    <item name="Android:windowSoftInputMode">stateHidden</item>
</style>

setze das Thema

<application Android:theme="@style/MyTheme">
32
Dipesh Rathod

Fügen Sie diese beiden Eigenschaften Ihrem übergeordneten Layout hinzu (z. B. lineares Layout, relatives Layout).

Android:focusable="false"
Android:focusableInTouchMode="false" 

Es wird den Trick tun :)

21
King of Masses

Versuchen Sie es in der Manifestdatei zu deklarieren

<activity Android:name=".HomeActivity"
      Android:label="@string/app_name"
      Android:windowSoftInputMode="stateAlwaysHidden"
      >
12
androidify

Wenn Sie die API-Ebene 21 verwenden, können Sie editText.setShowSoftInputOnFocus (false) verwenden.

9
SaraVF

Fügen Sie einfach AndroidManifest.xml hinzu

<activity Android:name=".HomeActivity"  Android:windowSoftInputMode="stateHidden">
</activity>
9

Sie können diese Codezeilen auch in das übergeordnete Layout der XML-Layoutdatei schreiben, in der Sie das "Problem" haben: Hier ist der Code:

Android:focusable="true"
Android:focusableInTouchMode="true"

Zum Beispiel:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    ...
    Android:focusable="true"
    Android:focusableInTouchMode="true" >

    <EditText
        Android:id="@+id/myEditText"
        ...
        Android:hint="@string/write_here" />

    <Button
        Android:id="@+id/button_ok"
        ...
        Android:text="@string/ok" />
</LinearLayout>

Der Schlüssel ist, um sicherzustellen, dass der EditText nicht direkt fokussierbar ist. 
Tschüss! ;-)

6
Jack T

Beste Lösung für mich, fügen Sie Ihre Klasse ein 

@Override
public void onResume() {
    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    super.onResume();
}

@Override
public void onStart() {
    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    super.onStart();
}
6
Efe ÖZYER

Funktion zum Ausblenden der Tastatur.

public static void hideKeyboard(Activity activity) {
    View view = activity.getCurrentFocus();

    if (view != null) {
        InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);

        inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
}

Tastatur in der Datei AndroidManifext.xml ausblenden.

<activity
    Android:name=".MainActivity"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme"
    Android:windowSoftInputMode="stateHidden">

Fügen Sie dies einfach in Ihre manifest.xml-Datei ein

<activity Android:name=".MainActivity"
            Android:windowSoftInputMode="stateHidden">

Sie sind alle fertig.

3
Androido

So erweitern Sie die akzeptierte Antwort von @Lucas:

Nennen Sie dies von Ihrer Aktivität in einem der frühen Lebenszyklusereignisse:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

Kotlin Beispiel:

override fun onResume() {
  super.onResume()

  window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)
}
3
Trevor.Screws

Sie können dieses eindeutige Attribut für jedes Element ausprobieren 

TextView mtextView = findViewById(R.id.myTextView);
mtextView.setShowSoftInputOnFocus(false);

Die Tastatur wird nicht angezeigt, wenn das Element den Fokus hat

0
//to hide the soft keyboard
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
0
Yuliia Ashomok

fügen Sie dies einfach zu Ihrer Aktivität hinzu:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
      if (getCurrentFocus() != null) {
           InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
           imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
      }
      return super.dispatchTouchEvent(ev);
}
0
haythem souissi