EditText теряет фокус при наборе в нем - PullRequest
0 голосов
/ 20 сентября 2018

Я добавил кучу EditTexts программно в представление прокрутки.Когда клавиатура появляется, она изменяет размеры представлений, включая представление прокрутки, и некоторые из текстовых правок покрываются им, без проблем , я просто прокручиваю, чтобы найти их. Проблема возникает, когда я набираю любой из текстовых правок, фокус теряется, чтобы было ясно, что вид все еще сфокусирован, но находится за пределами видимого диапазона.Это похоже на то, как если бы оно вводилось, оно снова изменило бы размер прокрутки до того, как появилась клавиатура, и, следовательно, представление переопределилось.Я уже ищу решения в Интернете, но, похоже, ни у кого нет этой проблемы.

Примечание: android: windowSoftInputMode = "AdjustPan" не справится с задачей

Есть идеи о том, что происходит?или что я могу сделать?

Вот код:

 for (int i = 1; i <= number_of_edittexts; ++i) {
  editText = new EditText(this);
        editText.setInputType(1);
        editText.setImeOptions(6);
        editText.setHint("Example: aeiou");
        editText.setY(heightET);
        editText.setX(widthET);
        editText.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        layout.addView(editText);
        heightTV = heightTV + 100;
        heightET = heightET + 100;
   }

Вот XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".FirstActivity"
tools:layout_editor_absoluteY="25dp">


<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:layout_marginEnd="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:text="Please insert whatever"
    android:textSize="18sp"
    app:layout_constraintBottom_toTopOf="@+id/scrollView3"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<ScrollView
    android:id="@+id/scrollView3"
    android:layout_width="379dp"
    android:layout_height="0dp"
    android:layout_marginBottom="15dp"
    android:layout_marginEnd="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:descendantFocusability="afterDescendants"
    app:layout_constraintBottom_toTopOf="@+id/button4"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView">

    <LinearLayout
        android:id="@+id/layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:descendantFocusability="afterDescendants"
        android:orientation="vertical" />
</ScrollView>

<Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:onClick="StartNextActivity"
    android:text="Continue"
    android:textSize="18sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/scrollView3" />
</android.support.constraint.ConstraintLayout>

1 Ответ

0 голосов
/ 22 сентября 2018

Так что вместо установки высоты вида с помощью setY(int) я использовал setMaxHeight(int)

...