【问题标题】:Holo theme - different text size in EditText and SpinnerHolo 主题 - EditText 和 Spinner 中的不同文本大小
【发布时间】:2012-11-11 23:33:37
【问题描述】:

我遇到了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 也没有任何左填充

我想要达到的目标

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

现在,我想将这两个 EditTexts 设置为像 Spinner 一样的样式,类似于 ICS Google 日历,如下所示:

第二行是EditText,表示事件的位置。我在其中输入了与 From 输入中相同的日期值,这是某种类型的视图(可能也是 EditText),单击时会显示 DatePickerDialog。

如您所见,FromTo 输入中的文本大小与位置 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,看起来还不错,当然这不是最好的解决方案。

标签: android styling font-size


【解决方案1】:

https://github.com/android/platform_packages_apps_contacts/blob/master/res/layout/date_picker.xml

以上链接正是他们的做法。与accepted answer 非常相似。我什至会走与他们在实际应用中不同的路线,更像是接受的答案。

【讨论】:

    【解决方案2】:

    好吧,既然没有其他人回答,这就是我所做的:

    我已经应用试错法来确定 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>
    

    这是一个肮脏的解决方案,但它似乎适用于系统中不同的文本大小设置,所以现在我坚持使用它。

    【讨论】:

      猜你喜欢
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 2012-02-12
      相关资源
      最近更新 更多