android - 如果设置了 iRoom 属性,ActionBar 按钮总是强制溢出

标签 android android-actionbar

iRoom如果有足够的空间,Android 应该查看按钮,否则会溢出。 遗憾ActionBar如果 iRoom,尽管有可用空间和屏幕尺寸,按钮总是被迫溢出属性已设置并且仅在我使用属性 always 时显示.

enter image description here

我的 ActionBar 菜单

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
            android:id="@+id/action_social_share"
            android:orderInCategory="100"
            android:showAsAction="ifRoom"
            android:icon="@drawable/action_social_share"
            android:title="@string/action_social_share"/>

    <item
            android:id="@+id/action_home"
            android:orderInCategory="100"
            android:showAsAction="ifRoom"
            android:icon="@drawable/action_home"
            android:title="@string/action_home"/>

    <item
            android:id="@+id/action_settings"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="@string/action_settings"/>

    <item
            android:id="@+id/action_about"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="@string/action_about"/>

</menu>

我的 Activity

import android.app.ActionBar;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;

public class InfoViewerActivity extends FragmentActivity {
    private ActionBar bar;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_infoviewer);

        bar = this.getActionBar();
        bar.setDisplayHomeAsUpEnabled(true);
        bar.setDisplayShowHomeEnabled(false);
        bar.setDisplayUseLogoEnabled(false);
        bar.setHomeButtonEnabled(true);
        bar.setDisplayShowTitleEnabled(false);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.info_viewer, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_home:
                //TO DO
                return true;
            case R.id.action_social_share:
                //TO DO
                return true;
            case R.id.action_settings:
                //TO DO
                return true;
            case R.id.action_about:
                //TO DO
                return true;
            default:
                // Handle your other action bar items...
                return super.onOptionsItemSelected(item);
        }
    }

}

我找不到这个问题的原因,并且多次使用类似的代码都没有这个问题。

最佳答案

查看关于该主题的第一个答案 showAsAction="ifRoom" doesn't show the item even when there is plenty of room 可能是命名空间问题。希望对您有所帮助。

关于android - 如果设置了 iRoom 属性,ActionBar 按钮总是强制溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29323886/

相关文章:

java.awt.桌面类

android - Android/iOS 应用程序中的 Fitbit 数据

android - 谷歌眼镜 : Add image in background : unsupported image scheme: http

android - 如何在操作栏的右侧添加 ImageView ?

使用 AppCompat 时,Android 的 splitActionBarWhenNarrow 在 Gingerbread 中不起作用

android - android xamarin中不同页面的不同自定义导航栏(操作栏)

java - 比较两个集合以确定第一个集合是否是其他集合的子集

android - 处理 res/values 中的 Android 动态文本字符串

java - 更改向上箭头颜色后标记为私有(private)警告

android - 如何在操作栏中制作带有通知数量的图标?