2014-01-09 64 views
2

这是我为我的动作条代码:操作栏不适合所有项目

<?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”,但它不适合。有什么方法可以保持图标和所有其他操作栏图标可见?也许规模适合或什么?

任何帮助表示赞赏,感谢。

回答

4

这是我为我的动作条

我不相信android:scaleType是一个MenuItem公认的属性代码。

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

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

也许尺度适合什么?

虽然您可以尝试使用视图属性来扩展你Switch的大小,也不能保证有足够的空间,有一个可用的Switch时,即可大功告成。您无法控制常规操作栏项目的缩放比例。

+0

我不知道如果把新的,保存等按钮放在底部可能是一个好主意,因为他们如此接近拇指我不想让人们不小心按下它们。你认为如果这些按钮停留在顶部而开关在底部会更好吗?如果是这样,我该怎么做,因为我已经编程添加了开关。感谢您的帮助:) – Ogen

+1

@Clay:“您认为如果这些按钮位于顶部而开关位于底部会更好吗?” - 虽然您无法通过操作栏执行此操作,但欢迎您将'Switch'放置在主UI中的某个位置。 – CommonsWare

+0

哈哈,那是我从未想到的。我以为这是一个设置,它应该放在操作栏中。感谢帮助。 – Ogen

0

恕我直言,这是对ActionBar的滥用。如果你一定要把所有东西都放在那里,你可以尝试通过在背景颜色的顶部添加一个LinearLayout来模拟ActionBar。您应该可以使用LayoutWeight参数来获取小部件。