Изменение цвета панели действий-Xamarin
у меня есть небольшой вопрос по поводу ActionBar
В Android.
Я использую Xamarin Studio для создания приложения, и я хотел бы изменить цвет панели действий. Я искал далеко и широко способ изменить цвет, но это единственное, что я мог найти.
ColorDrawable colorDrawable = new ColorDrawable(Color.ParseColor("#ff0f62ae"));
this.ActionBar.SetBackgroundDrawable(colorDrawable);
Я думал, что это сработает, но теперь я получаю это исключение, и я не могу понять, почему это не работает для меня.
это исключение:
Object reference not set to an instance of an object
может кто-нибудь объяснить я, что я делаю неправильно, и, возможно, покажу мне, как я могу это исправить.
редактировать
после нескольких комментариев я попробовал это:
<resources>
<style name="AppTheme"
parent="android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/</item>
<item name="andriod:titleTextStyle">@style/MyActionBarTextAppearance</item>
</style>
<style name="MyActionBarTextAppearance" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/default_white</item>
</style>
</resources>
как я могу добавить пользовательский цвет и как назначить это моей actionbar
5 ответов
Я сделал так. Попробуйте это и дайте мне знать, если это работает, пожалуйста,
<style name="AppTheme" parent="android:Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBarTheme</item>
</style>
<style name="ActionBarTheme" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/color_action_bar</item>
</style> "
и в цветах.xml или добавить переменную цвета в строки.xml, пожалуйста, добавьте нужный цвет для панели действий
<color name="color_action_bar">#3450A3</color>
и упомянуть тему в файле манифеста
<application
android:theme="@style/AppTheme" >
Try this:
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#f00</item>
<item name="android:titleTextStyle">@style/MyTextAppearance</item>
</style>
<style name="MyTextAppearance" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">#ffffff</item>
</style>
это сработало для меня
<color name="actionBarBackgroundColor">#2C3E50</color>
<color name="actionBarTextColor">#FFFFFF</color>
<style name="MyAppTheme"/>
<style name="MyAppTheme" parent="@android:style/Theme.DeviceDefault.Light">
<item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
</style>
<style name="MyTheme.ActionBarStyle" parent="@android:style/Widget.DeviceDefault.Light.ActionBar">
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
<item name="android:background">@color/actionBarBackgroundColor</item>
</style>
<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title">
<item name="android:textColor">@color/actionBarTextColor</item>
</style>
в качестве объяснения на ответ @SID, для укладки панели действий вы должны переопределить всю тему вашего приложения.
если они не существуют добавить Styles.XML
и Colors.XML
файлы и редактировать их, как показано ниже :
стили.XML-код:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBarTheme</item>
</style>
<style name="ActionBarTheme" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/DarkBlue</item>
</style>
</resources>
цвета.XML-код:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<color name="DarkBlue">#007acc</color>
</resources>
Теперь перейдите к Properties>AndroidManifest.xml
, и <application>
тег для ссылки на собственные темы :
<application
android:theme="@style/AppTheme"
... >
</application>
обновление :
если вы готовы использовать AppCompat
и ActionBarActivity
тогда вам больше не понадобится ActionBarTheme
на Styles.XML
вот что Styles.XML
будет выглядеть так :
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/LightBlue</item>
<item name="colorPrimaryDark">@color/DarkBlue</item>
<item name="colorAccent">@color/Pink</item>
</style>
</resources>
и Colors.XML
:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<color name="DarkBlue">#0052cc</color>
<color name="Pink">#ff1ac6</color>
<color name="LightBlue">#1a75ff</color>
</resources>
очень простое решение, перейдите к своим "стилям".xml " файл на вашем Xamarin.Проект Android, и просто заменить или добавить эти свойства в свой стиль:
<!-- colorPrimary is used for the default action bar background -->
<item name="colorPrimary">#002500</item>
<!-- colorPrimaryDark is used for the status bar #4FAB5B-->
<item name="colorPrimaryDark">#002500</item>