【问题标题】:Actionbar logo padding left左侧操作栏徽标填充
【发布时间】:2014-03-26 10:59:17
【问题描述】:

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

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

我该怎么做?

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

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

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

@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);
    }

这是在我的 style.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>

【问题讨论】:

  • 你试过禁用主页按钮吗?
  • 显示你的一些代码。
  • @sureshkumar 你是怎么做到的?
  • @ElmoVanKielmo 我在我的问题中添加了信息
  • 使用此代码 ActionBar actionBar = getSupportActionBar(); actionBar.setShowHomeAsUpEnabled(false);

标签: android android-layout android-actionbar


【解决方案1】:

您可以在文件夹 /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" >

【讨论】:

  • 这只会在图标右侧添加填充。我想将图标的实际 viewHolder 移动到左侧,并在屏幕左侧和图标之间设置自定义填充。
【解决方案2】:

为了减少屏幕左侧和我使用的徽标之间的空间:

       <style name="AppTheme" parent="android:Theme.Holo">
            <item name="android:actionBarStyle">@style/ActionBarStyle</item>
        </style>

        <style name="ActionBarStyle" parent="@android:style/Widget.Holo.ActionBar">
            <item name="android:layout_marginLeft">-11dp</item>
        </style>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 2016-06-05
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    相关资源
    最近更新 更多