Holo主题 - EditText和Spinner中的不同文本大小

时间:2012-11-23 15:22:27

标签: android styling font-size

我的文字大小为EditTextSpinner时出现问题,默认灯光 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>

......结果如下:

从屏幕截图中可以看到:

  1. Spinner(3)中的文字大小默认为,而不是EditText(1)。
  2. 如果我将Spinner样式应用于EditText(2),那么它的字体与Spinner的大小相同。
  3. Spinner - 样式EditText由于某种原因也没有任何左边填充
  4. 我想要实现的目标

    我创建了一个自定义日期时间选择器组件,该组件派生自RelativeLayout并包含两个EditText。单击后,第一个显示日期选择器对话框,第二个显示时间选择器对话框。

    现在,我想将这两个EditText设置为像Spinner一样,与ICS Google Calendar 的方式类似,如下所示:< / p>

    第二行是事件位置EditText。我在 From 输入中输入了相同的日期值,这是一种类型的View(可能也是EditText),在点击时显示DatePickerDialog。

    正如您所看到的, From To 输入中的文本大小与位置EditText中的文本大小相同,左边的填充也是相同。

    如何在保持相同字体大小和左填充的同时为EditText实现类似Spinner的外观?

    在哪里(在android风格的XML文件中)我可以找到各种视图和小部件的textSize,padding等的实际默认值(在这种情况下是EditText和Spinner)?

2 个答案:

答案 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非常相似。我甚至会采用与实际应用程序不同的路线,更像是接受的答案。