8

我想做一个编辑模式,采用平板电脑 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>

此外..settings android:homeAsUpIndicator 将我的最低 api 级别从 8 提高到 11,这也是一个问题。

4

4 回答 4

35

如果您处于 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
}
于 2014-07-26T05:27:34.737 回答
5

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

于 2013-02-24T19:01:22.350 回答
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
        }
于 2018-09-04T12:07:00.490 回答
-1

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

要在操作栏中隐藏 UP 按钮,请在 OnCreateOptionsMenu 中使用以下命令:

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

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

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

希望对新手有所帮助。

于 2015-10-09T20:57:19.610 回答