我在操作栏中使用Spinner导航。除了样式之外,一切都很好。
我希望微调器导航看起来像一个有标题和副标题的操作栏:
但是如果我使用微调器导航,我必须将标题和副标题设置为空字符串并提供我自己的微调器视图。我做了什么,但它看起来像这样:
问题:使微调器看起来与上图相同的样式是什么?
注意:我尝试将TextViews textAppearance分别设置为android:textAppearance="@android:style/TextAppearance.Medium"
和android:textAppearance="@android:style/TextAppearance.Small"
,但它不起作用。
我使用的是原生动作栏,而不是ABS。
答案 0 :(得分:3)
这些项目的高度在/<android-sdk>/platforms/android-15/data/res/values/dimens.xml
文件中定义,如下所示:
<dimen name="action_bar_default_height">48dip</dimen>
<dimen name="action_bar_title_text_size">18dp</dimen>
<dimen name="action_bar_subtitle_text_size">14dp</dimen>
<dimen name="action_bar_subtitle_top_margin">-3dp</dimen>
<dimen name="action_bar_subtitle_bottom_margin">5dip</dimen>
(详情请见https://stackoverflow.com/a/11686495/989029)
您应该在res文件夹中重新定义所需的值(请注意,这些值对于不同的方向是不同的,因此您还需要多个文件)并使用它们:
actionbar_spinner_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical"
android:paddingLeft="5dp"
android:paddingRight="5dp">
<TextView
android:id="@+id/action_bar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:text="@string/title_activity_main"
android:textSize="@dimen/action_bar_title_text_size"
android:textColor="@android:color/primary_text_dark"
android:textStyle="bold" />
<TextView
android:id="@android:id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/action_bar_subtitle_top_margin"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/primary_text_dark"
android:textSize="@dimen/action_bar_subtitle_text_size" />
</LinearLayout>
我在getView()方法的自定义ArrayAdapter中使用此布局。从您的屏幕截图中我假设您了解详细信息。
所有这些都给出了以下结果,在我测试的所有设备上看起来都是预期的。