【问题标题】:Set android:showAsAction="ifRoom|withText" programmatically以编程方式设置 android:showAsAction="ifRoom|withText"
【发布时间】:2013-02-28 14:42:48
【问题描述】:

是否可以按照hereandroid:showAsAction="ifRoom|withText" 的建议以编程方式设置标志?

【问题讨论】:

    标签: android android-actionbar actionbarsherlock


    【解决方案1】:

    对于每个MenuItem,执行以下操作:

    myMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    

    【讨论】:

    • 我在 kotlin 上尝试了myMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 但没有成功,它只允许输入一种值类型,还有其他方法吗?
    【解决方案2】:

    如果您想在运行时设置这些属性,那么您需要在 MenuItem 上这样做,而不是在 ActionBar 上。

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu, menu);
        MenuItem item = menu.findItem(R.id.your_menu_item);
        item.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
    }
    

    【讨论】:

      【解决方案3】:

      你试过了吗:

      getSupportActionBar().setDisplayOptions(MenuItem.SHOW_AS_ACTION_IF_ROOM);
      getSupportActionBar().setDisplayOptions(MenuItem.SHOW_AS_ACTION_WITH_TEXT);
      

      【讨论】:

      • 我认为应该是(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT),flag-style。
      • 基于documentation,我认为这不应该工作,因为setDisplayOptions()需要ActionBar DISPLAY_常量虽然,一些常量do overlap
      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 2018-11-26
      • 2011-04-18
      • 2012-07-18
      • 2016-02-15
      • 2014-07-26
      • 1970-01-01
      • 2011-06-06
      相关资源
      最近更新 更多