【发布时间】:2012-11-11 23:33:37
【问题描述】:
我遇到了EditText 和Spinner 默认浅色Holo 主题的文字大小问题。由于某种原因,默认情况下它们并不相同。
假设我有这个示例布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="EditText default" />
<EditText
style="@android:style/Widget.Holo.Light.Spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="EditText spinner style" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@android:array/imProtocols" />
</LinearLayout>
...这会导致:
从截图可以看出:
- 默认情况下,
Spinner(3) 中的文本大小比EditText(1) 中的小。 - 如果我将
Spinner样式应用到EditText(2),那么它的字体与 Spinner 具有相同的“较小”大小。 - 由于某种原因,
Spinner样式的EditText也没有任何左填充。
我想要达到的目标
我创建了一个派生自RelativeLayout 并包含两个EditTexts 的自定义日期时间选择器组件。单击后,第一个显示日期选择器对话框,第二个显示时间选择器对话框。
现在,我想将这两个 EditTexts 设置为像 Spinner 一样的样式,类似于 ICS Google 日历,如下所示:
第二行是EditText,表示事件的位置。我在其中输入了与 From 输入中相同的日期值,这是某种类型的视图(可能也是 EditText),单击时会显示 DatePickerDialog。
如您所见,From 和 To 输入中的文本大小与位置 EditText 中的文本大小相同,左侧填充也相同。
如何在保持相同字体大小和左填充的同时为 EditText 实现类似 Spinner 的外观?
在哪里(在 android 样式的 XML 文件中)可以找到各种视图和小部件(在本例中为 EditText 和 Spinner)的 textSize、填充等的实际默认值? p>
【问题讨论】:
-
您可以在
android-sdk/platforms/android-NN/data/res/中找到所有基本 XML。如果只是样式问题(字体大小、填充、边距),那将很容易,但我似乎记得 EditText 和 Spinner 的实际 图像资源 的尺寸不同,这就是为什么他们不对齐。或者可能是 Button 和 Spinner。 -
@dmon 是的,我知道 SDK XML 文件在硬盘驱动器上的实际位置,但我宁愿寻找定义这些属性的具体文件和
-
这个问题你解决了吗?我也一样……
-
@user1365836 好吧,我手动将
paddingLeft设置为12dp,将textAppearance设置为?android:attr/textAppearanceMediumInverse,看起来还不错,当然这不是最好的解决方案。