操作栏不适合所有项目

时间:2014-01-09 00:43:10

标签: android android-actionbar

以下是我的操作栏的代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/actionBarNew"
        android:showAsAction="always"
        android:scaleType="fitXY"
        android:title="new" />
    <item android:id="@+id/actionBarSave"
        android:showAsAction="always"
        android:scaleType="fitXY"
        android:title="save" />
    <item android:id="@+id/actionBarLoad"
        android:showAsAction="always"
        android:scaleType="fitXY"
        android:title="load" />
    <item android:id="@+id/actionBarDelete"
        android:showAsAction="always"
        android:scaleType="fitXY"
        android:title="delete" />
</menu>

然后在我的 onCreate()方法中,我添加了这样的开关小部件:

ActionBar actionBar = getActionBar();
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM);
        actionBar.setCustomView(actionBarSwitch, new ActionBar.LayoutParams(
        ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT,
                Gravity.CENTER_VERTICAL | Gravity.END));
        actionBar.setTitle(title);
        actionBarSwitch.setText(sfx);
        actionBarSwitch.setTextColor(res.getColor(R.color.white));
        actionBarSwitch.setChecked(soundOn);
        actionBarSwitch.setOnCheckedChangeListener(this);

目前看来是这样的:

enter image description here

如您所见,左侧的开关小部件已被遮盖。应该在它的左边说“SFX”,但它不合适。有没有办法保持图标和所有其他操作栏图标可见?也许缩放到适合或什么?

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:4)

  

以下是我的操作栏的代码

我不认为android:scaleTypeMenuItem的公认属性。

  

有没有办法让图标和所有其他操作栏图标可见?

Use the split action bar,将您的操作栏项目(NEW等)移动到狭窄设备上的屏幕底部。

  

也许缩放到适合的东西?

虽然欢迎您尝试使用视图属性来扩展Switch的大小,但无法保证在完成后有足够的空间来使用Switch。您无法控制常规操作栏项的缩放。

答案 1 :(得分:0)

恕我直言,这有点滥用ActionBar。如果你肯定想要适应那里的所有东西,你可以尝试通过在活动顶部添加一个带有背景颜色的LinearLayout来模仿ActionBar。您应该能够使用LayoutWeight参数来使窗口小部件适合。