2017-07-26 5 views
0

Ich habe ein Searchview-Widget in meiner Aktivität, die nicht Teil einer Symbolleiste ist. In meiner onCreate-Methode verwende ich searchView.setIconified (false); und das bringt die searchView in den Fokus, aber es bringt die Tastatur nicht, es sei denn, ich klicke es erneut an. Wie kann ich sie Tastatur auch Pop-up?Searchview-Tastatur wird beim Starten der Aktivität in Android nicht programmatisch angezeigt

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    </android.support.v7.widget.Toolbar> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:padding="15dp" 
     android:background="@color/lighterGrey"> 
    <android.support.v7.widget.SearchView 
     android:id="@+id/search_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:transitionName="@string/search_transition" 
     android:background="@drawable/search_shape"/> 
    </LinearLayout> 


    <android.support.v7.widget.RecyclerView 
     android:id="@+id/acronym_recyclerview" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

</LinearLayout> 

java:

searchView = (SearchView) findViewById(R.id.search_view); 
searchView.setIconified(false); 
searchView.setFocusable(true); 
searchView.setIconified(false); 
searchView.requestFocusFromTouch(); 
View view = this.getCurrentFocus(); 
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
if (imm != null) { 
    imm.showSoftInput(view, 0); 
} 

Antwort

0

Sie benötigen AndroidManifest.xml zu aktualisieren. Fügen Sie Ihrer Aktivitätserklärung android:windowSoftInputMode="stateVisible|adjustPan" hinzu. Zum Beispiel:

<activity 
     android:name=".MyActivity" 
     android:windowSoftInputMode="stateVisible|adjustPan"> 
    </activity> 

stateVisible wird die Software-Tastatur anzeigen, sobald die Aktivität beginnt. adjustPan wird die Ansicht anpassen, um die angezeigte Tastatur zu kompensieren (damit der Inhalt, den Sie anzeigen möchten, nicht von der Tastatur abgedeckt wird).

+0

Das ist nicht für mich hinzufügen müssen, scheint zu funktionieren – DessertsAndStuff

+0

[Haben Sie die Tastatur programmatisch versucht zeigen?] (Https: // Stackoverflow .com/questions/1109022/close-verstecken-the-android-soft-tastatur? rq = 1) Wenn das nicht funktioniert, PLZ & XML, so können wir Ihnen mit Ihrem Problem helfen –

+0

ja, ich habe das auch versucht aber das hat nicht funktioniert – DessertsAndStuff

0

Versuchen Sie, die folgende

searchView.setFocusable (true) hinzuzufügen; searchView.setIconified (false); searchView.requestFocusFromTouch();

Es sollte Fokus und öffnen Tastatur. Bei einigen Geräten finden Sie auch

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

if (imm != null) {
imm.showSoftInput(view, 0);
}

+0

Funktioniert auch nicht :(Ich werde die Frage mit meinem Code aktualisieren – DessertsAndStuff

Verwandte Themen