是否可以使ActionBar选项卡的高度高于ActionBar高度?如果是这样,怎么样?

时间:2012-05-13 17:16:17

标签: android android-layout actionbarsherlock android-actionbar

我正在使用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的高度相同。

6 个答案:

答案 0 :(得分:0)

我不是百分之百,但从我的经验来看,它无法完成,android不允许它。也许这将在未来发生变化,但目前还没有太多可以做的事情。

希望这有帮助!

答案 1 :(得分:0)

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

sample会告诉您如何操作。

答案 2 :(得分: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)将图像放在可绘制文件夹中

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" 

在申请标签下。

答案 3 :(得分:0)

您可以覆盖操作栏

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

android:layout_width="@dimen/action_BarWidth"
android:layout_height="@dimen/action_BarHeight"

答案 4 :(得分:0)

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

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

答案 5 :(得分: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);