2014-01-09 3 views
2

Вот мой код для моего 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» слева от него, но он не подходит. Есть ли способ сохранить значок и все другие значки на панели действий? Может быть, масштаб подходит или что-то еще?

Любая помощь приветствуется, спасибо.

ответ

4

Вот мой код для моего ActionBar

Я не верю, что android:scaleType является признанным атрибутом для MenuItem.

Есть ли способ сохранить значок и все другие значки панели действий видимыми?

Use the split action bar, чтобы перемещать элементы панели действий (NEW и т. Д.) В нижней части экрана на узких устройствах.

Возможно, шкала подходит или что-то в этом роде?

В то время как вы можете попытаться использовать вид свойства, чтобы масштабировать размер вашего Switch, нет никакой гарантии, что есть достаточно места, чтобы иметь полезный Switch, когда вы закончите. У вас нет контроля над масштабированием элементов регулярной панели действий.

+0

Я не знаю, может быть, если положить новые, сохранить и т. Д. Кнопки внизу, это хорошая идея, потому что они так близки к большим пальцам. Я не хочу, чтобы люди случайно нажимали на них. Считаете ли вы, что было бы лучше, если бы эти кнопки оставались наверху, а переключатель - внизу? Если да, то как я могу это сделать, потому что я добавил программу программно. Спасибо за вашу помощь кстати :) – Ogen

+1

@Clay: «Как вы думаете, было бы лучше, если бы эти кнопки остались наверху, а переключатель ушел внизу?» - пока вы не можете сделать это с помощью панели действий, вы можете поместить «Switch» где-то в свой основной интерфейс. – CommonsWare

+0

Ха-ха, что мне никогда не приходило в голову. Я думал, потому что это настройка, она должна идти в панели действий. Спасибо за помощь. – Ogen

0

ИМХО это немного злоупотребляет ActionBar. Если вы определенно хотите вместить все, что угодно, вы можете попробовать имитировать ActionBar, добавив LinearLayout вверху вашей деятельности с цветом фона. Вы должны иметь возможность использовать параметры LayoutWeight, чтобы затем установить виджетов.

Смежные вопросы