Actionbar徽标填充左侧

时间:2014-03-26 10:59:18

标签: android android-layout android-actionbar

操作栏在徽标左侧显示一个空格。这个空间是为我认为的指示者保留的。

我想给这个空间定义一个20dp的距离,例如。

我该怎么做?

我可以将图标的填充设置为0,但这不会删除徽标和屏幕左侧之间的空间。

我试图通过使用自定义布局来解决它。但是有一点问题。每次活动启动时,首先会显示正常操作栏,然后显示自定义布局。

这是我显示自定义视图的方式:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_custom);
        // Set up the action bar.
        final ActionBar actionBar = getActionBar();
        //set custom actionbar
        actionBar.setDisplayShowCustomEnabled(true);
        actionBar.setCustomView(R.layout.actionbar);
        //Displays the custom design in the actionbar
        actionBar.setDisplayUseLogoEnabled(false);
        actionBar.setDisplayHomeAsUpEnabled(false);
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    }

这是我的styles.xml:

        <!--Customize the actionbar-->
        <item name="android:windowActionBarOverlay">false</item>
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="android:actionButtonStyle">@style/MyActionButton</item>

    </style>

    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">@color/green2</item>
        <item name="android:icon">@drawable/app_icon_small</item>
        <!-- Support library compatibility -->

    </style>

    <style name="MyActionButton" parent="@android:style/Widget.Holo.Light.ActionButton">
        <item name="android:paddingRight">@dimen/padding_border</item>
        <item name="android:paddingLeft">@dimen/padding_border</item>
        <item name="android:src">@drawable/icon_plus</item>
        <!--<item name="android:minWidth">0dp</item>-->
        <!--<item name="android:paddingLeft">0dp</item>-->
        <!--<item name="android:paddingRight">15dp</item>-->
        <!-- Support library compatibility -->
    </style>

这是自定义视图的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:background="@color/green2">
    <ImageView
        android:id="@+id/header"
        android:contentDescription="@string/app_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="@dimen/padding_border"
        android:paddingRight="@dimen/padding_border"
        android:src="@drawable/app_icon_small"/>

    <EditText
        android:id="@+id/et_actionbar_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="YOLO"
        android:gravity ="center"
        android:textColor="@android:color/black"
        android:textStyle="bold"
        android:background="@android:color/transparent"
        />
</LinearLayout>

2 个答案:

答案 0 :(得分:9)

您可以在文件夹/ res / drawable中创建xml文件(your_xml_file),如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:drawable="@drawable/menu_button"
        android:right="20dp"/>


</layer-list>

并将其添加到代码中:

<activity android:name=...
            android:logo="@drawable/your_xml_file" >

答案 1 :(得分:0)

要缩小屏幕左侧与我使用的徽标之间的空间:

namespace Servicebus.App_Start
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            WebApiConfig.Register(new HttpConfiguration());
            ConfigureAuth(app);
        }
    }
}