OutlinedBox样式TextInputLayout未为提示标签预留空间问题咨询
解决OutlinedBox样式TextInputLayout提示文本空间被挤占的问题
问题根源在于你给TextInputLayout自定义样式里加的android:padding="15dp"——作为Material组件,TextInputLayout内部有一套专门的布局测量逻辑来处理悬浮提示文本(label)的位置,直接设置android:padding会打乱内部布局计算,导致提示文本没有足够的悬浮空间,被挤压到边框内部。
修复方案:
- 移除自定义样式中的
android:padding,改用Material组件提供的专用属性调整内边距,比如contentPadding:
<style name="CustomTextInputLayout" parent="@style/Widget.Material3.TextInputLayout.OutlinedBox"> <item name="colorPrimary">@color/dialog_text_color</item> <item name="colorOnSurface">@color/dialog_text_color</item> <!-- 使用contentPadding控制整体内边距,不影响label布局 --> <item name="contentPadding">15dp</item> </style>
- 若仅需调整输入文本区域的内边距,直接给内部的
TextInputEditText设置padding即可:
<com.google.android.material.textfield.TextInputEditText android:id="@+id/edit_title_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLength="60" android:imeOptions="actionDone" android:inputType="text" android:padding="15dp" />
这样既能保证TextInputLayout正确为悬浮提示文本预留空间,也能满足你的内边距需求。
内容的提问来源于stack exchange,提问作者Kris B
相关产品推荐
相关产品推荐

