gpt4 book ai didi

android - 默认 EditText 填充的值是多少?

转载 作者:行者123 更新时间:2023-12-03 09:38:07 25 4
gpt4 key购买 nike

我有一个 EditText定义如下:

    <EditText
android:id="@+id/input_password"
android:hint="@string/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword" />

它有一些默认填充,看起来像这样,带有“显示布局边界”选项: enter image description here (或者它真的是边距,我不确定。我指的是红色内框和蓝色角之间的空间)。但是这些填充/边距的值(value)是什么?在 platforms/android-19/data/res/values/themes.xml我找到了 Widget.EditText样式定义如下:
<style name="Widget.EditText">
<item name="android:focusable">true</item>
<item name="android:focusableInTouchMode">true</item>
<item name="android:clickable">true</item>
<item name="android:background">?android:attr/editTextBackground</item>
<item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item>
<item name="android:textColor">?android:attr/editTextColor</item>
<item name="android:gravity">center_vertical</item>
</style>

但是没有提到边距/填充。那么它们在哪里定义呢?

最佳答案

这个问题来自默认值?android:attr/editTextBackground .

<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"
android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
android:insetTop="@dimen/abc_edit_text_inset_top_material">

<selector>
<item
android:drawable="@drawable/abc_textfield_default_mtrl_alpha"
android:state_enabled="false" />
<item
android:drawable="@drawable/abc_textfield_default_mtrl_alpha"
android:state_focused="false"
android:state_pressed="false" />
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha" />
</selector>

</inset>
如您所见,EditText 的所有边缘的插入值为 4dp。这使得 EditText 在其内容周围有小填充。
要删除该填充,您应该使用修改后的 editTextBackground 创建一个新的 EditText 样式。属性。例如:
<style name="Widget.App.TextField" parent="@style/Widget.AppCompat.EditText">
<item name="colorControlActivated">#303E44</item>
<item name="colorControlHighlight">#E5E9EC</item>
<item name="colorControlNormal">#E5E9EC</item>
<item name="editTextBackground">@drawable/background_new_edit_text</item>
<item name="android:editTextBackground">@drawable/background_new_edit_text</item>
</style>
background_new_edit_text.xml
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:inset="@dimen/spacing_0dp">
<selector>
<item
android:drawable="@drawable/abc_textfield_default_mtrl_alpha"
android:state_enabled="false" />
<item
android:drawable="@drawable/abc_textfield_default_mtrl_alpha"
android:state_focused="false"
android:state_pressed="false" />
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha" />
</selector>

</inset>
为您的 EditText 应用新样式:
<EditText
android:id="@+id/edt_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Widget.App.TextField"
/>

关于android - 默认 EditText 填充的值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24556010/

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