2014-01-15 2 views
2

У меня возникли две проблемы с использованием версии поддержки виртуальной машины V7.Проблемы с ActionBar

Это то, что мое приложение выглядит следующим образом:

enter image description here

И это, как я хочу, чтобы это выглядело:

enter image description here

Первые проблемы в том, что текст отдельно от заголовок показывает черный вместо серого.

Я использую Display Home Как Up Enabled вариант, но вы не можете увидеть стрелку, потому что его черный на черном фоне, как показано выше (стрелка есть, если вы посмотрите очень трудно!)

Это стиль, я использую для ActionBar - Я совершенно уверен, что я делаю что-то здесь не так, но я не могу понять, что:

<style name="PropertyCrossTheme" parent="@style/Theme.AppCompat.Light"> 
    <!-- Any customizations for your app running on pre-3.0 devices here --> 
    <item name="android:actionBarStyle">@style/ActionBar</item> 
    <item name="android:actionMenuTextAppearance">@style/ActionBar.MenuTextStyle</item> 
</style> 
<style name="ActionBar" parent="android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">@drawable/actionbar_background</item> 
    <item name="android:titleTextStyle">@style/ActionBar.TitleText</item> 
</style> 
<style name="ActionBar.TitleText" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">@android:color/white</item> 
</style>  
<style name="ActionBar.MenuTextStyle" parent="android:style/TextAppearance"> 
    <item name="android:textColor">@android:color/white</item> 
</style> 

Второй вопрос заключается в том, что мой добавить в избранное/remove из любимой опции всегда выталкивается в скрытое меню.

Это мое меню XML:

<item android:id="@+id/favourites_add_item" android:title="@string/favourites_add" 
    android:icon="@drawable/nostar" android:showAsAction="always|withText" /> 
<item android:id="@+id/favourites_remove_item" android:title="@string/favourites_remove" 
    android:icon="@drawable/star" android:showAsAction="always|withText" /> 

И в коде, я добавляю в меню, как это (я знаю, что C# - я использую Xamarin, но я не думаю, что это причина вопрос, пожалуйста, просто делать вид, что это Java :-D):

public override bool OnCreateOptionsMenu(IMenu menu) 
    { 
     MenuInflater.Inflate(Resource.Menu.favourites_toggle, menu); 
     return true; 
    } 
    public override bool OnPrepareOptionsMenu(IMenu menu) 
    { 
     IMenuItem addItem = menu.FindItem(Resource.Id.favourites_add_item); 

     addItem.SetVisible(!IsFavourited); 

     IMenuItem removeItem = menu.FindItem(Resource.Id.favourites_remove_item); 
     removeItem.SetVisible(IsFavourited); 
     return true; 
    } 

Благодаря

Росс

+1

Вы должны изменить тему на @ стиль/Theme.AppCompat.Light.DarkActionBar. В противном случае чертежи будут более темными, чтобы быть на светлом ActionBar, а светло-серый для темного ActionBar. – Kiliman

ответ

1

Yo U использует поддержку v7, поэтому вам нужно использовать:

app:showAsAction="always|withText" 

вместо

android:showAsAction="always|withText" 

приложения должна быть:

xmlns:app="http://schemas.android.com/apk/res-auto" 

Обратите внимание, что при использовании withText вы вынуждаете его покажите текст, связанный с элементом меню, вы, вероятно, не хотите, хотите ли вы показывать эту звезду.

2

В XML меню, попробуйте удалить "| withText", так это выглядит:

<item android:id="@+id/favourites_add_item" android:title="@string/favourites_add" 
android:icon="@drawable/nostar" android:showAsAction="always" /> 
<item android:id="@+id/favourites_remove_item" android:title="@string/favourites_remove" 
android:icon="@drawable/star" android:showAsAction="always" /> 
Смежные вопросы