从android上的操作栏中删除图标/徽标

Hra*_*afn 145 xml android titlebar android-layout android-actionbar

我一直试图找到一些从操作栏中删除图标/徽标的方法,但我在搜索SO,Android的文档和Google之后发现的唯一一件事就是如何删除整个标题栏.那不是我想要的.只想从标题栏中删除图标/徽标.

谁知道怎么做到这一点?我想在XML中这样做.

Qiq*_*ziz 228

在操作栏样式中添加以下代码:

<item name="android:displayOptions">showHome|homeAsUp|showTitle</item>
<item name="displayOptions">showHome|homeAsUp|showTitle</item>
<item name="android:icon">@android:color/transparent</item> <!-- This does the magic! -->
Run Code Online (Sandbox Code Playgroud)

PS:我正在使用Actionbar Sherlock,这很好用.

  • 一些三星设备将"@android:color/transparent"显示为BLACK.看起来很疯狂,但许多设备制造商都超越了Android的默认设置; 包括颜色.因此,我会在colors.xml中创建一个颜色,如:`<color name ="transparent">#00000000 </ color>`并引用而不是从Android获取值. (24认同)
  • 这个"透明"的伎俩就是天才!谢谢! (10认同)
  • 谢谢..在代码中也工作... actionBar.setIcon(android.R.color.transparent); (6认同)
  • 相当不错的伎俩,谢谢!它甚至停止在行动吧占用空间! (2认同)

Lak*_*ksh 115

如果您不希望图标处于特定活动状态.

getActionBar().setIcon(
   new ColorDrawable(getResources().getColor(android.R.color.transparent)));    
Run Code Online (Sandbox Code Playgroud)

  • getActionBar()的setIcon(android.R.color.transparent).似乎已经足够了 (45认同)

Cha*_*ere 57

如果你已android:logo="..."在你的<application>标签中定义AndroidManifest.xml,那么你需要使用这些东西来隐藏图标:

pre-v11主题

<item name="logo">@android:color/transparent</item>
Run Code Online (Sandbox Code Playgroud)

v11及以上主题

<item name="android:logo">@android:color/transparent</item>
Run Code Online (Sandbox Code Playgroud)

使用这两种样式已经正确隐藏了2.3和4.4设备上的操作栏图标(此应用程序使用AppCompat).


Bru*_*une 48

这对我有用

getActionBar().setDisplayShowHomeEnabled(false);
Run Code Online (Sandbox Code Playgroud)

  • 这会将操作栏置于选项卡/导航栏下.显然这种行为是"按设计"... http://code.google.com/p/android/issues/detail?id=36191 (2认同)

Atu*_*lic 28

调用

mActionBar.setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

此外,

mActionBar.setDisplayShowHomeEnabled(false);
Run Code Online (Sandbox Code Playgroud)

将隐藏徽标,但显示Home As Up图标.:)


小智 15

意识到:

<item name="android:icon">@android:color/transparent</item>
Run Code Online (Sandbox Code Playgroud)

还会使您的选项项目透明化.


dn_*_*n_c 12

getActionBar().setIcon(android.R.color.transparent);
Run Code Online (Sandbox Code Playgroud)

这对我有用.


Paw*_*cki 11

    //disable application icon from ActionBar
    getActionBar().setDisplayShowHomeEnabled(false);

    //disable application name from ActionBar
    getActionBar().setDisplayShowTitleEnabled(false);
Run Code Online (Sandbox Code Playgroud)


Tia*_*vêa 11

使用以下方法删除或显示标题:

getActionBar().setDisplayShowTitleEnabled(true);
Run Code Online (Sandbox Code Playgroud)

使用以下方法删除或显示徽标:

getActionBar().setDisplayUseLogoEnabled(false);
Run Code Online (Sandbox Code Playgroud)

移除所有:

getActionBar().setDisplayShowHomeEnabled(false);
Run Code Online (Sandbox Code Playgroud)


Sam*_*Sam 9

您还可以在AndroidManifest.xml中添加以下代码.

android:icon="@android:color/transparent"
Run Code Online (Sandbox Code Playgroud)

它会工作正常.

但我发现这会产生问题,因为启动器图标也变得透明.

所以我用过:

getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
Run Code Online (Sandbox Code Playgroud)

它工作得很好.

但是,如果您有多个活动,并希望使活动上的图标透明,那么之前的方法将起作用.