如何在操作栏中隐藏按钮

问题描述 投票:6回答:4

我想以平板电脑gmail应用程序的风格进行编辑模式。如果用户按下操作栏上的编辑按钮,我想向他/她显示一个动作视图,左侧有一个完成按钮,右侧有一个删除按钮。

我有一个没有actionbarsherlock的例子:https://code.google.com/p/romannurik-code/source/browse/misc/donediscard

出于兼容性原因,我想坚持使用actionbarsherlock。

这是我在onCreateOptionsMenu中解决它的方式:

getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.white));
getSupportActionBar().setIcon(R.drawable.white);

for (int i = 0; i < menu.size(); i++) {
    menu.getItem(i).setVisible(false); }

getSupportActionBar().setDisplayHomeAsUpEnabled(false);什么都不做,所以我不得不将主页图标设置为白色1x1像素可绘制。

我还必须设置动作栏的背景颜色,作为动作视图的背景颜色。如果我没有,那么1x1主页图标周围会有填充,并且白色主页按钮周围会显示原始背景颜色。

有人有更好的解决方案吗?

编辑:我也不得不改变风格:

<style name="Theme.Styled" parent="Theme.Sherlock.Light">
        <item name="android:homeAsUpIndicator">@drawable/white</item>
        <item name="homeAsUpIndicator">@drawable/white</item>
</style>

另外..设置android:homeAsUpIndicator将我的min api级别从8增加到11,这也是一个问题。

android user-interface actionbarsherlock
4个回答
31
投票

如果您使用的是API级别14或更高级别并且未使用ActionbarSherlock,则onCreateOptionsMenu中的此代码将禁用向上按钮,删除左侧插入符号并删除图标:

ActionBar actionBar = getActionBar();
if (actionBar != null) {
    actionBar.setHomeButtonEnabled(false); // disable the button
    actionBar.setDisplayHomeAsUpEnabled(false); // remove the left caret
    actionBar.setDisplayShowHomeEnabled(false); // remove the icon
}

6
投票

你快到了。要完全隐藏图标/徽标,请使用setDisplayShowHomeEnabled(false)。您正在使用的呼叫只删除了指示该图标也充当“向上”按钮的小箭头。


0
投票

这对我有用,虽然它在上述解决方案中略有改变

android.support.v7.app.ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.setHomeButtonEnabled(false); // disable the button
            actionBar.setDisplayHomeAsUpEnabled(false); // remove the left caret
            actionBar.setDisplayShowHomeEnabled(false); // remove the icon
        }

-1
投票

虽然这是一篇较老的帖子,但我想分享一个对我有用的答案。

要隐藏操作栏中的“向上”按钮,请在OnCreateOptionsMenu中使用以下内容:

if (getSupportActionBar() != 
           getSupportActionBar().hide();
       }

要删除操作栏中的“向上”按钮,请在OnCreateOptionsMenu中使用以下内容:

if (getSupportActionBar() != 
           getSupportActionBar().setDisplayHomeAsUpEnabled(false);
       }

我希望它能帮助新手。

© www.soinside.com 2019 - 2024. All rights reserved.