我的文字大小为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
并包含两个EditText
。单击后,第一个显示日期选择器对话框,第二个显示时间选择器对话框。
现在,我想将这两个EditText
设置为像Spinner
一样,与ICS Google Calendar 的方式类似,如下所示:< / p>
第二行是事件位置的EditText
。我在 From 输入中输入了相同的日期值,这是一种类型的View(可能也是EditText),在点击时显示DatePickerDialog。
正如您所看到的, From 和 To 输入中的文本大小与位置EditText
中的文本大小相同,左边的填充也是相同。
如何在保持相同字体大小和左填充的同时为EditText实现类似Spinner的外观?
在哪里(在android风格的XML文件中)我可以找到各种视图和小部件的textSize,padding等的实际默认值(在这种情况下是EditText和Spinner)?
答案 0 :(得分:5)
好吧,因为没有其他人回答,这就是我所做的:
我已经应用了试错法来确定EditText的实际文本大小和左侧填充,然后手动设置这些参数:
<style name="PickerEditText" parent="@android:style/Widget.Holo.Light.Spinner">
<item name="android:paddingLeft">12dp</item>
<item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item>
</style>
这是一个肮脏的解决方案,但它似乎甚至适用于系统中的不同文本大小设置,所以现在我坚持使用它。
答案 1 :(得分:1)
https://github.com/android/platform_packages_apps_contacts/blob/master/res/layout/date_picker.xml
以上链接正是他们如何做到的。与accepted answer非常相似。我甚至会采用与实际应用程序不同的路线,更像是接受的答案。