Кнопка «Готово» больше не отображается при наборе текста в поле EditText - PullRequest
0 голосов
/ 12 февраля 2019

В моем приложении есть поле 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
}

Honor P smart

Other phones

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 13 февраля 2019

Попробуйте это:

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

android: imeOptions = "actionDone"

код Java:


     emailedit = (EditText) findViewById(R.id.login_email);

     emailedit.setImeOptions(EditorInfo.IME_ACTION_DONE);

установка строки в коде

emailedit.setImeOptions (EditorInfo.IME_ACTION_DONE);

Я проверил несколько устройств, его работа для меня .

я надеюсьэто тебе поможет

...