Android TextInputLayout / EditText не является полноразмерным и обрезает текст

android android-layout layout

3667 просмотра

2 ответа

405 Репутация автора

У меня есть фрагмент, который содержит калькулятор (всего три TextInputEditTexts, которые прослушивают ввод).

Эти входы изложены в RelativeLayout, как показано ниже

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingTop="16dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingBottom="16dp">

    <android.support.design.widget.TextInputLayout
        android:id="@+id/binomial_probability_wrapper"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/label_probability"
        android:paddingBottom="16dp">
        <android.support.design.widget.TextInputEditText
            android:id="@+id/binomial_probability_input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:inputType="numberDecimal"/>
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/binomial_trials_wrapper"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/label_trials"
        android:paddingBottom="16dp"
        android:layout_below="@+id/binomial_probability_wrapper">
        <android.support.design.widget.TextInputEditText
            android:id="@+id/binomial_trials_input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:inputType="numberSigned"/>
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:id="@+id/binomial_successes_wrapper"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/label_successes"
        android:paddingBottom="16dp"
        android:layout_below="@+id/binomial_trials_wrapper">
        <android.support.design.widget.TextInputEditText
            android:id="@+id/binomial_successes_input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:inputType="numberSigned"/>
    </android.support.design.widget.TextInputLayout>

</RelativeLayout>

Я также пытался использовать LinearLayout с каждым входом в отдельной строке, но это имело тот же результат.

Как вы можете видеть на этом изображении введите описание изображения здесь

нижний вход обрезан. Если я измерил его на своем экране, то это явно другой размер, но Android возвращает одинаковое значение для высот каждого макета и ввода.

Любые предложения относительно того, как это исправить, приветствуются.

Изменить: некоторая дополнительная информация. Границы макета показывают, что текстовый курсор на самом деле выше высоты нижнего TextInputEditText. Вершина имеет правильную высоту.

Второе редактирование: я добавил TextView ниже (для вывода), и теперь он обрезан, а TextInputEditText теперь такой же, как и остальные.

Автор: Theo Pearson-Bray Источник Размещён: 18.07.2016 03:23

Ответы (2)


0 плюса

1006 Репутация автора

  <android.support.design.widget.TextInputLayout
        android:id="@+id/binomial_probability_wrapper"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/label_probability"
        android:paddingBottom="16dp">
        <android.support.design.widget.TextInputEditText
            android:id="@+id/binomial_probability_input"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:inputType="numberDecimal"/>
    </android.support.design.widget.TextInputLayout>

Вы должны использовать Android: PaddingTop = "5dp" в

<android.support.design.widget.TextInputLayout
        android:id="@+id/binomial_probability_wrapper"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/label_probability"
        android:paddingTop="5dp">
 ---- write something ----
    </android.support.design.widget.TextInputLayout>
Автор: luttu android Размещён: 28.12.2016 05:46

1 плюс

680 Репутация автора

Как говорится на официальной странице GitHub:

TextInputLayoutпредоставляет два варианта высоты для заполненных и контурных текстовых полей: стандартное и плотное. Оба стиля рамки по умолчанию соответствуют стандартной высоте.

Чтобы уменьшить высоту текстового поля, вы можете использовать плотный стиль, который уменьшит вертикальные отступы внутри текстового поля. Вы можете достичь этого, применяя соответствующие стили к вашему TextInputLayoutи TextInputEditText, в зависимости от того, используете ли вы заполненное или контурное текстовое поле

Поэтому постарайтесь , чтобы применить @style/Widget.MaterialComponents.TextInputLayout.FilledBox.Denseк вашим TextInputLayoutили изменить дополнения дляTextInputEditText

Автор: Danylo.Vus Размещён: 20.08.2018 08:56
Вопросы из категории :
32x32