5

我对文本大小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)中的文本大小 比(1)中的EditText一点。
  2. 如果我将Spinner样式应用于EditText(2),那么它的字体与 Spinner 具有相同的“较小”大小。
  3. 由于某种原因, Spinner-styledEditText也没有任何左填充

我想要达到的目标

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

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

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

如您所见,FromTo输入中的文本大小与 location 中的相同,EditText左侧填充也相同。

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

在哪里(在 android 样式 XML 文件中)我可以找到各种视图和小部件(在这种情况下为 EditText 和 Spinner)的 textSize、填充等的实际默认值是什么?

4

2 回答 2

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>

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

于 2012-12-03T20:30:03.367 回答
1

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

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

于 2013-02-05T20:54:07.297 回答