如何在操作栏中隐藏按钮

ber*_*tom 7 user-interface android actionbarsherlock

我想以平板电脑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); }
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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

Vin*_*ior 33

如果您使用的是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
}
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用!我只需要将```getActionBar()```改为```getSupportActionBar()```.谢谢! (2认同)

Geo*_*its 6

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