android:imeActionLabel和android:imeOptions在所有设备上都没有得到尊重。

时间:2015-10-22 06:22:30

标签: android

我对编辑文本有以下定义:

 <android.support.design.widget.TextInputLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp">

                    <EditText
                        android:id="@+id/password"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="@string/prompt_password"
                        android:imeActionLabel="@string/action_sign_in_short"
                        android:imeOptions="actionUnspecified"
                        android:inputType="textPassword"
                        android:maxLines="1"
                        android:singleLine="true"
                        android:textColor="@color/loginColorPrimaryDark" />

                </android.support.design.widget.TextInputLayout>

在我想要启动登录的操作按钮上:

 edt_password.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
                if (id == R.id.login || id == EditorInfo.IME_NULL) {
                    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(textView.getWindowToken(),
                            InputMethodManager.RESULT_UNCHANGED_SHOWN);
                    attemptLogin();


                    return true;
                }
                return false;
            }
        });

在Nexus 5设备中,一切正常,在索尼设备中我得到以下内容:

enter image description here

因此,android:imeActionLabel="@string/action_sign_in_short"android:imeOptions="actionUnspecified"都不会得到尊重。

令我惊讶的是,我没有自己指定,我在Android Studio中创建项目时在项目模板中选择了一个Login Activity。好像它坏了!

1 个答案:

答案 0 :(得分:1)

尝试使用以下代码...对我来说它适用于所有设备..希望它能帮到你

compile ('com.parse.bolts:bolts-android:1.+')
compile ('com.parse:parse-android:1.+')       /* <-- removed this */