我想以平板电脑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,这也是一个问题。
如果您使用的是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
}
你快到了。要完全隐藏图标/徽标,请使用setDisplayShowHomeEnabled(false)
。您正在使用的呼叫只删除了指示该图标也充当“向上”按钮的小箭头。
这对我有用,虽然它在上述解决方案中略有改变
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
}
虽然这是一篇较老的帖子,但我想分享一个对我有用的答案。
要隐藏操作栏中的“向上”按钮,请在OnCreateOptionsMenu中使用以下内容:
if (getSupportActionBar() !=
getSupportActionBar().hide();
}
要删除操作栏中的“向上”按钮,请在OnCreateOptionsMenu中使用以下内容:
if (getSupportActionBar() !=
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}
我希望它能帮助新手。