gpt4 book ai didi

material-components-android - 不要在 TextInputLayout 中垂直居中 Placeholder

转载 作者:行者123 更新时间:2023-12-05 07:13:44 32 4
gpt4 key购买 nike

我正在使用 Material Components 1.1.0。在 TextInputLayout 上,我通过将 EditTextpaddingStart 设置为零来删除背景并左对齐占位符和文本。

这给了我以下结果: enter image description here请注意占位符和底线之间的较大距离。实际输入文字时,文字与底线的距离要小得多: enter image description here我希望占位符与底线的距离与实际文本的距离相同。我怎样才能做到这一点?

使用样式:

<style name="AppTheme" parent="Theme.MaterialComponents.Light">
<item name="textInputStyle">@style/textInputLayout</item>
</style>

<style name="textInputLayout" parent="Widget.MaterialComponents.TextInputLayout.FilledBox.Dense">
<item name="boxBackgroundColor">@color/transparentWhite</item>
</style>

使用TextInputLayout:

   <com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_normal"
app:layout_constraintEnd_toStartOf="@+id/guideline_end"
app:layout_constraintStart_toStartOf="@+id/guideline_start"
app:layout_constraintTop_toTopOf="parent">

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/text_contract_partner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Stackoverflow"
android:paddingStart="0dp"
android:paddingEnd="0dp"
/>
</com.google.android.material.textfield.TextInputLayout>

最佳答案

您可以扩展组件并编写自己的行为。 @Gabriele Mariotti 是 Material Design 的大师,我认为他是对的。你可以ask对于此功能。

这是一个有点丑陋的解决方案,由于在提示之间切换,它没有动画。

enter image description here

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_normal"
app:hintTextAppearance="@android:style/TextAppearance.Medium"
app:layout_constraintEnd_toStartOf="@+id/guideline_end"
app:layout_constraintStart_toStartOf="@+id/guideline_start"
app:layout_constraintTop_toTopOf="parent"
android:hint="Stackoverflow"
app:hintEnabled="false"
>

<com.google.android.material.textfield.TextInputEditText
android:id="@+id/text_contract_partner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Stackoverflow"
/>

</com.google.android.material.textfield.TextInputLayout>

text_contract_partner.setOnFocusChangeListener { v, hasFocus ->
if (hasFocus) {
textInputLayout.isHintEnabled = true
} else {
if (text_contract_partner.text.toString().isEmpty()) {
textInputLayout.isHintEnabled = false
}
}
}

1) 未聚焦状态,文本为空:

enter image description here

2) 文本为空的聚焦状态:

enter image description here

3) 文本聚焦状态:

enter image description here

4) 带有文本的未聚焦状态:

enter image description here

关于material-components-android - 不要在 TextInputLayout 中垂直居中 Placeholder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60084454/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com