10

我正在使用 ActionBarSherlock

在关于 ActionBar 选项卡高度的类似问题中,我使用了:

<style name="YourTheme" parent="@android:style/Theme.Holo">
   <item name="android:actionBarStyle">@style/blah1</item>
   <item name="android:actionBarTabStyle">@style/blah2</item>
   <item name="android:actionBarSize">80dp</item>
   ..
</style>

我假设我可以在每种样式上使用这个特定属性

<item name="android:actionBarSize">80dp</item>

并从 ActionBar 选项卡高度单独调整 ActionBar 高度。

但它不起作用。

那么,这是我无法覆盖的 Android 设计原则吗?

选项卡必须始终与 ActionBar 具有相同的高度。

4

6 回答 6

0

您可以覆盖操作栏的 android 设计原则,我已经尝试过,它可能对您有用。

将以下代码复制到 styles.xml 文件中

<style name="ThemeSelector" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/myTheme.ActionBar</item>
</style>

<style name="myTheme.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">imageforactionbar</item>
    <item name="android:titleTextStyle">@style/myTheme.ActionBar.Text</item>
    <item name="android:height">60dp</item>
</style>

1)将图像放在drawable文件夹中

2)在样式xml中写入样式主题'myTheme.ActionBar.Text'。

<style name="myTheme.ActionBar.Text" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/white</item>
    <item name="android:textSize">@dimen/app_head</item>
</style>

相应地更改清单文件,包括

android:theme="@style/ThemeSelector" 

在应用程序标签下。

于 2014-02-13T07:21:28.900 回答
0

不,您不能更改 ICS 上原生操作栏的大小。原生操作栏的高度始终为 48dip(纵向)或 40dip(横向)。

但是如果你坚持改变它的高度,你可以实现你自己的动作栏。

于 2014-10-18T06:48:48.037 回答
0

我对此不是 100% 的,但根据我的经验,它无法完成,android 不允许它。也许这会在未来发生变化,但目前对此无能为力。

希望这可以帮助!

于 2012-05-21T14:56:26.750 回答
0

您是否尝试过使用自定义操作栏?您可以使用单独的布局完全自定义操作栏。

示例将向您展示如何操作。

于 2013-09-19T23:24:19.020 回答
0

您可以覆盖操作栏

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.action_bar);

android:layout_width="@dimen/action_BarWidth"
android:layout_height="@dimen/action_BarHeight"
于 2014-04-02T08:52:09.500 回答
0

我们可以从 java 类中的代码或主题动态创建操作栏:

第 1 步:我们可以更改特定类的操作栏的图像、名称、颜色、高度等,这是一个过程。

    ActionBar actionBar = getActionBar();
   // show the action bar title
    actionBar.setDisplayShowTitleEnabled(true);
    LayoutParams test = new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT, Gravity.CENTER | Gravity.CENTER);
    View actionBarView = LayoutInflater.from(this).inflate(
            R.layout.x, null); // layout which contains your
                                            // button.
    actionBar.setCustomView(actionBarView, test);
    actionBar.setDisplayShowCustomEnabled(true);

    SpannableString s = new SpannableString("Test");
    s.setSpan(new ForegroundColorSpan(Color.parseColor("#ffffff")), 0,
            s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

    // Update the action bar title with the TypefaceSpan instance
    actionBar.setTitle(s);
于 2015-12-10T10:09:49.900 回答