【问题标题】:remove logo and text from action bar and replace them with icons从操作栏中删除徽标和文本并用图标替换它们
【发布时间】:2015-06-02 01:15:57
【问题描述】:

我想删除我的图标标志和操作栏中的文字并用图标替换它

如何实现?

这是我的 xml 代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" >



        <item android:id="@+id/add"
          android:icon="@drawable/add"
          android:title="add picture"
          app:showAsAction="always" />

     <item android:id="@+id/ic_action_picture"
          android:icon="@drawable/ic_action_picture"
          android:title="@string/ic_action_picture"
          app:showAsAction="always" />


      <item android:id="@+id/ic_action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/ic_action_search"
          app:showAsAction="always"/>


       <item android:id="@+id/ic_action_person"
          android:icon="@drawable/ic_action_person"
          android:title="@string/ic_action_person"
          app:showAsAction="always" />


</menu>

这是我的风格。

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">

        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>

    <!-- Application theme. -->

<style name="AppTheme1" parent="android:Theme.Holo.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/ActionBar</item>  
</style> 
     <style name="ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">#14a804</item>
    </style>

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>
   </style>

<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">

    <item name="android:background">@color/red</item>
    <item name="background">@color/red</item>

</style>
</resources>

【问题讨论】:

    标签: android


    【解决方案1】:

    如果您只想隐藏徽标和文字,请将以下内容添加到您的活动onCreate 方法中:

    getActionBar().setDisplayShowTitleEnabled(false);
    getActionBar().setDisplayShowHomeEnabled(false);
    

    有关项目对齐等进一步自定义,请查看here

    【讨论】:

    • 我不希望它以编程方式
    【解决方案2】:

    最简单的方法是,从 Activity 中删除操作栏,在 xml 中创建类似于操作栏的线性布局,在此放置所有图标。

    困难的方法是在你的操作栏中填充一个 xml。

    我总是选择第一个选项。问候

    【讨论】:

    • 哪种方法最好?
    • 我相信要实现您想要的更好的方法是简单的方法,首先使用以下代码删除操作栏:requestWindowFeature(Window.FEATURE_NO_TITLE);
    • 你能把它显示为完整的例子吗?
    • 我用第一个例子做了,我希望它没有缺点。
    • 嗨!这段代码在很多情况下都可以,特别是如果您必须修改操作栏,如果您需要帮助,请给我写信给 TW @devferlara 问候