Кнопка "Готово" больше не отображается при наборе текста в поле EditText
В моем приложении есть поле EditText, где пользователь может вводить данные. Приложение находится в полноэкранном режиме программно. Проблема в том, что на некоторых телефонах (Honor P Smart) кнопка "Готово" больше не видна, как вы можете видеть на картинках.
Эта проблема появилась всего неделю назад, после того, как телефон (Honor P Smart) получил обновление (прошивка fig-lx1 8.0.0.140 (c02)). Перед обновлением была видна кнопка "Готово". Я должен отметить, что SwiftKey не является корнем проблемы, так как я пробовал на других телефонах с SwiftKey, и он работал отлично.
Кроме того: почему второй в полноэкранном режиме, а первый нет? Как я могу заставить полноэкранный режим?
Вот код xml для поля EditText:
<EditText
android:id="@+id/label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_left"
android:layout_marginStart="@dimen/margin_left"
android:cursorVisible="false"
android:imeActionLabel="@string/done"
android:hint="@string/something"
android:imeOptions="actionDone"
android:inputType="textVisiblePassword"
android:lineSpacingExtra="6sp"
android:textColor="@color/color_x"
android:textSize="32sp" />
Я настраиваю слушателя следующим образом:
view.enar_button_label.setOnEditorActionListener { textView, actionID, keyEvent ->
if (actionID == EditorInfo.IME_ACTION_DONE) {
// hiding keyboard, because for some reason, it does not hide automatically
(activity!!.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager).hideSoftInputFromWindow(view.enar_button_label.windowToken, 0)
// soome stuff...
(activity as MainActivity).setImmersiveMode()
return@setOnEditorActionListener true
}
return@setOnEditorActionListener false
}
Любая помощь будет оценена!
2 ответа
Попробуй это:
XML-код:
<EditText
android:id="@+id/login_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/margin_30"
android:layout_marginRight="@dimen/margin_30"
android:layout_marginBottom="@dimen/margin_20"
android:gravity="center"
android:hint="@string/username"
android:maxLength="40"
android:padding="@dimen/padding_10"
android:imeOptions="actionDone"
android:singleLine="true" />
добавить это в EditText
андроид:imeOptions="actionDone"
Java-код:
emailedit = (EditText) findViewById(R.id.login_email);
emailedit.setImeOptions(EditorInfo.IME_ACTION_DONE);
установить строку в коде
emailedit.setImeOptions(EditorInfo.IME_ACTION_DONE);
Я проверил несколько устройств, его работа для меня.
я надеюсь, что это поможет вам
@blade просто добавьте строку ниже в свой текстовый тег редактирования. Тогда проблема будет решена.
android:singleLine="true"
Дайте мне знать, если у вас возникнут какие-либо проблемы.