【问题标题】:how to hide up button in actionbar如何隐藏操作栏中的向上按钮
【发布时间】:2013-02-24 18:49:21
【问题描述】:

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

【问题讨论】:

    标签: android user-interface actionbarsherlock


    【解决方案1】:

    如果您的 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
    }
    

    【讨论】:

    • 我使用了您的代码,并且工作正常。我可以将我的徽标应用为主页按钮,但我也想使用后退按钮设置文本。看起来像链接中的图像:stackoverflow.com/questions/29486908/…。你能帮我解决这个问题吗?
    • 这对我有用!我只需将getActionBar() 更改为getSupportActionBar()。谢谢!
    【解决方案2】:

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

    【讨论】:

    • setDisplayShowHomeEnabled(false) 什么都不做。哦,现在我被那个愚蠢的小箭头卡住了。我怎么让它消失。我粘贴在开篇文章中的代码对我来说不再起作用了\:
    • 哦,我明白了..更新了开幕帖。我不小心从 styles.xml 中删除了一些行。
    • 我使用我的drawable作为getActionBar().setLogo(R.drawable.back_button);在 getActionBar().setDisplayHomeAsUpEnabled(false); 之后。我想用它写文字。像图片一样:stackoverflow.com/questions/29486908/…
    【解决方案3】:

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

    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
            }
    

    【讨论】:

      【解决方案4】:

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

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

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

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

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

      希望对新手有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-30
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2019-02-02
        • 2017-03-09
        • 1970-01-01
        相关资源
        最近更新 更多