我在默认的亮色Holo主题下,遇到了关于EditText
和Spinner
文本大小的问题。由于某种原因,默认情况下它们的大小不同。
假设我有以下示例布局:
<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
并包含两个EditText
。单击后,第一个显示日期选择器对话框,第二个显示时间选择器对话框。
现在,我想将这两个EditText
样式设置为类似于Spinner
,类似于ICS Google日历,如下所示:
第二行是用于事件位置的EditText
。我已经将与From输入中相同的日期值输入其中,From输入是某种类型的View(可能也是EditText),单击后显示DatePickerDialog。
如您所见,From和To输入中的文本大小与位置EditText
中的文本大小相同,左填充也相同。
如何使EditText具有类似Spinner的外观,同时保持相同的字体大小和左填充?
在android样式XML文件中,我可以在哪里找到各种视图和小部件(此例中为EditText和Spinner)的实际默认值,例如textSize、padding等?
android-sdk/platforms/android-NN/data/res/
找到所有基本的 XML。如果只是样式问题(字体大小、填充、边距),那么很容易解决,但我记得 EditText 和 Spinner 的实际 图像资源 尺寸不同,这就是它们不能对齐的原因,或者可能是 Button 和 Spinner。 - dmonpaddingLeft
设置为12dp
,并将textAppearance
设置为?android:attr/textAppearanceMediumInverse
,看起来还不错,当然这不是最佳解决方案。 - Natix