我有这个布局:
<LinearLayout
android:id="@+id/dialogCentralContent"
android:gravity="center_horizontal"
android:layout_width="220dp"
android:layout_height="wrap_content"
android:layout_below="@+id/phoneNumberInfo"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="20dp"
android:layout_centerHorizontal="true"
android:orientation="horizontal"
android:background="@drawable/edittext_white_rounded">
<EditText
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center"
android:maxLines="1"
android:inputType="none"
android:focusable="false"
android:text="@={dataContext.phonePrefix}"
style="@style/Widget.App.PurchaseAmountEditText" />
<android.support.design.widget.TextInputLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3"
tools:errorEnabled="true"
app:errorText="@{dataContext.validator.phoneValidation}">
<android.support.design.widget.TextInputEditText
android:layout_height="60dp"
android:layout_width="match_parent"
android:gravity="center"
android:maxLines="1"
android:inputType="phone"
android:text="@={dataContext.phoneNumber}"
style="@style/Widget.App.PurchaseAmountEditText" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
看起来像这样:
正如您所看到的,第二个EditText
的渲染率低于第一个TextInputLayout
。当我在Android Studio的可视化编辑器中查看它时,我可以看到paddingTop="0dp"
顶部有一些可用空间,但设置EditText
并没有改变任何内容。那么如何使这两个{{1}}以同样的方式呈现呢?
答案 0 :(得分:3)
默认情况下,TextInputLayout
会在浮动提示文字的顶部留出空间。如果您不使用浮动提示,则可以通过将以下内容添加到开头<TextInputLayout>
元素来删除该空格。
app:hintEnabled="false"
当TextInputEditText
为空时,常规提示文字仍会显示。
答案 1 :(得分:-1)
我使用了材质 TextInputLayout。
我已经设置了 app:hintEnabled="false"
但它没有帮助。我已将 android:paddingTop="0dp"
设置为 EditText
(在 TextInputLayout
内)并且它可以工作。