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