2014-01-09 109 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參數來獲取小部件。