【问题标题】:Android TextInputLayout/EditText is not full size and cuts off textAndroid TextInputLayout/EditText 不是全尺寸并截断文本
【发布时间】:2016-11-21 06:50:39
【问题描述】:

我有一个包含计算器的片段(只有三个用于监听输入的 TextInputEditText)。

这些输入设置在一个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 现在和其他的一样。

【问题讨论】:

  • RelativeLayout的宽度从fill_parent改成match_parent?
  • 不幸的是,这并没有改变任何东西。似乎我在布局底部的任何视图都被切断了。我发现(到目前为止)解决问题的唯一方法是添加一个具有最小高度的视图作为某种填充。
  • 如果你改变你的文本大小/填充量怎么办?您可能掌握的信息太多。
  • 如果我更改视图的填充,由于某种原因,视图会与空白重叠,为视图添加边距也是如此。设置 minHeight 有效。

标签: android android-layout layout


【解决方案1】:

正如官方github页面所说:

TextInputLayout 为填充和轮廓提供两种高度变化 文本字段,标准和密集。两种框样式都默认为 标准高度。

为了降低文本框的高度,可以使用dense 样式,这将减少文本框中的垂直填充。你 可以通过将适当的样式应用于您的 TextInputLayoutTextInputEditText,取决于你是否 使用填充或轮廓文本字段

所以尝试将@style/Widget.MaterialComponents.TextInputLayout.FilledBox.Dense 应用到您的TextInputLayout 或更改TextInputEditText 的填充

【讨论】:

    【解决方案2】:
      <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多