2017-07-26 73 views
0

我的活動中有一個不屬於工具欄的searchview小部件。在我的onCreate方法中,我使用了 searchView.setIconified(false); ,這確實使searchView成爲焦點,但它不會提起鍵盤,除非我再次單擊它。我如何讓他們的鍵盤彈出?在Android中啓動活動時不會以編程方式彈出Searchview鍵盤

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); 
} 

回答

0

你需要更新您的AndroidManifest.xml。將android:windowSoftInputMode="stateVisible|adjustPan"添加到您的活動聲明中。例如:

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

stateVisible將盡快活動開始顯示軟件鍵盤。 adjustPan將調整視圖以補償顯示的鍵盤(以便您嘗試顯示的內容不被鍵盤覆蓋)。

+0

這並沒有爲我工作 – DessertsAndStuff

+0

[您是否嘗試過編程顯示鍵盤?](https://開頭計算器.com/questions/1109022/close-hide-the-android-soft-keyboard?rq = 1)如果這不起作用,請發佈代碼和XML,以便我們可以幫助您解決問題 –

+0

是的,我也試過,沒有工作 – DessertsAndStuff

0

嘗試添加以下

searchView.setFocusable(真); searchView.setIconified(假); searchView.requestFocusFromTouch();

它應該重點打開鍵盤。 在某些設備上,你必須也增加似乎

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

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

+0

不工作:(我要用我的代碼更新問題 – DessertsAndStuff

相關問題