0

我的项目中的 ActionBar 有以下样式

     <style name="Theme.MyTheme" parent="Theme.Sherlock.Light">
    <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
    <item name="homeAsUpIndicator">@drawable/icon_back</item>
    <item name="android:homeAsUpIndicator">@drawable/icon_back</item>
</style>

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="android:background">#0099CC</item>
    <item name="android:height">?android:attr/actionBarSize</item>
    <item name="background">#0099CC</item>
    <item name="android:titleTextStyle">@style/Theme.ActionBar.TitleTextStyle</item>
    <item name="titleTextStyle">@style/Theme.ActionBar.TitleTextStyle</item>
    <item name="android:displayOptions">useLogo|showTitle|homeAsUp</item>
    <item name="displayOptions">useLogo|showTitle|homeAsUp</item>
</style>

<style name="Theme.ActionBar.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Title">
    <item name="android:textColor">@color/white</item>
    <item name="android:padding">10dp</item>
</style>

现在标题栏中的文本以 0dp 向左对齐。TextColor 属性工作正常,但填充似乎被忽略了。结果Activity的标题就卡在了不怎么好看的屏幕左手边。如何为文本添加填充?

亲切的问候,

4

2 回答 2

1

这就是我能够设置主页图标和标题之间的填充的方式。

ImageView view = (ImageView)findViewById(android.R.id.home);
view.setPadding(left, top, right, bottom);

不过,我找不到通过 ActionBar xml 样式自定义它的方法。也就是说,以下 XML 不起作用:

<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar">        
    <item name="android:titleTextStyle">@style/ActionBarTitle</item>
    <item name="android:icon">@drawable/ic_action_home</item>        
</style>

<style name="ActionBarTitle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textSize">18sp</item>
    <item name="android:paddingLeft">12dp</item>   <!-- Can't get this padding to work :( -->
</style>

从这里:

ActionBar 的主页图标和标题之间的填充

于 2012-08-27T13:17:49.060 回答
1

要存档在 ABS 中具有居中的标题,而没有主页按钮,您可以这样做:

在您的活动中,在您的oncreate方法中:

getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
getSupportActionBar().setCustomView(R.layout.abs_layout);

abs_layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="my Title"
        android:textColor="#ffffff"
        android:id="@+id/mytext"
        android:textSize="25dp" />


</LinearLayout>

现在你应该有一个只有标题的操作栏。如果要设置自定义背景,请在上面的 Layout 中设置(但不要忘记设置android:layout_height="match_parent"

或与:

getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.yourimage));
于 2012-08-27T22:00:31.327 回答