我從書中創建一個簡單的小費計算器程序,並且無法在Nexus 6P上運行應用程序時顯示數字軟鍵盤。如果我在Nexus 7上運行應用程序,它會按預期工作。 Nexus 6P有沒有可能存在的問題,還是我忽略了一些問題?在Nexus 7上顯示軟鍵盤,但不在Nexus 6P上
我已經在清單試了設置的活動:
機器人:windowSoftInputMode =「stateAlwaysVisible | adjustResize | adjustPan」
開始了stateAlwaysVisible並添加了其他人來嘗試解決問題。
我有requestFocus的,並在XML輸入類型:
<EditText
android:id="@+id/amountEditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_row="0"
android:digits=""
android:inputType="number"
android:maxLength="6">
<requestFocus />
</EditText>/>
<TextView
android:id="@+id/amountDisplayTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:layout_gravity="fill_horizontal"
android:layout_row="0"
android:background="@android:color/holo_blue_bright"
android:padding="@dimen/textview_padding"
android:textAppearance="?android:attr/textAppearanceMedium" />
在Java代碼中,我再次嘗試將焦點設置在amountEditText領域:
amountEditText = (EditText) findViewById(R.id.amountEditText);
amountEditText.requestFocus();
amountEditText.addTextChangedListener(amountEditTextWatcher);
amountEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resetUI();
}
});
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(amountEditText, InputMethodManager.SHOW_IMPLICIT);
當我運行這在Nexus 7上(android 5.1.1),應用程序啓動時會顯示軟鍵盤,如預期的那樣。
當我在Nexus 6P(android 6.0.1)上運行此應用程序時,軟鍵盤不顯示。但是,如果我多次點擊輸入欄,軟鍵盤可能會決定顯示。如果是這樣,那麼Nexus 7就是一個較小的鍵盤。
我已經在Android Studio 1.5和2.0 Beta 4中生成了這些設備的代碼。相同的結果。
目標SDK版本爲23,SDK版本最低爲21.嘗試將目標SDK版本更改爲22 - 無喜。
任何建議,將不勝感激。
編輯
進一步測試後,它看起來像網格佈局在和約束和去除填充的問題,儘管錯誤消息是不是什麼問題了非常明確:
d /機器人。 widget.GridLayout:水平約束:x2-x1> = 482,x2-x0 < = 2112,x2-x1 < = 100不一致;永久移除:x2-x0 < = 2112,x2-x1 < = 100。 y3-y1> = 113,y3-y2> = 0,y4-y3> = 113,y5-y4> = 169,y6-y5> = 169,y3-> y2> y1> y1> y3> y1> y2> y1> y1> y3> y2> y7-y6> = 0,y8-y7> = 0,y2-y1 = < = 91,y1-y0 = < = 186不一致;永久刪除:y2-y1 < = 91。
再一次,這只是當我在Nexus 6P上出現問題。
因此,我重寫了應用程序xml以使用RelativeLayout與嵌入式LinearLayouts而不是GridLayout。
應用程序現在效果更好,但軟鍵盤不會自動出現,直到我點擊EditText字段。
我還是requestFocus的中的onCreate和使用:
android:windowSoftInputMode = "stateAlwaysVisible|adjustResize"
在清單中的活動。
由於該應用程序對我的使用來說足夠好用了,所以它的用途已經足夠,我想我已經儘可能地在這個應用程序的這一點上,並且在這種情況下可以考慮關閉此問題。
但是,如果有人想出其他的東西我可以嘗試,我願意放棄它。
謝謝
嘗試imm.showSoftInput(myEditText,0);沒有幫助。當應用程序立即顯示時,應用程序首先顯示,沒有鍵盤。如果我點擊金額字段,鍵盤出現並停留在那裏,除非我按下後退按鈕或切換到橫向。現在可能會離開應用程序。感謝您的建議。 – mtdavem