Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改操作栏颜色-Xamarin_C#_Android_Xamarin.android - Fatal编程技术网

C# 更改操作栏颜色-Xamarin

C# 更改操作栏颜色-Xamarin,c#,android,xamarin.android,C#,Android,Xamarin.android,我有一个关于Android中的ActionBar的小问题。 我正在使用Xamarin Studio制作一个应用程序,我想更改ActionBar的颜色。我到处寻找改变颜色的方法,但这是我唯一能找到的 ColorDrawable colorDrawable = new ColorDrawable(Color.ParseColor("#ff0f62ae")); this.ActionBar.SetBackgroundDrawable(colorDrawable); 我原以为

我有一个关于Android中的
ActionBar
的小问题。 我正在使用Xamarin Studio制作一个应用程序,我想更改ActionBar的颜色。我到处寻找改变颜色的方法,但这是我唯一能找到的

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>

@样式/MyActionBar
@颜色/
@样式/MyActionBartext外观
@颜色/默认值为白色

如何添加自定义颜色,以及如何将其分配给我的actionbar,我是这样做的。试试这个,如果有用请告诉我

<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> "

@风格/动作巴塞姆
@颜色/颜色\动作\栏
"
在colors.xml或在strings.xml中添加颜色变量,请为操作栏添加所需的颜色

<color name="color_action_bar">#3450A3</color>
#3450A3
并在清单文件中提到主题

<application
    android:theme="@style/AppTheme" >

试试这个:
#f00
@样式/我的文本外观
#ffffff
这对我很有效

   <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>
#2C3E50
#FFFFFF
@style/MyTheme.ActionBarStyle
@style/MyTheme.ActionBar.TitleTextStyle
@颜色/背景颜色
@颜色/动作BartextColor

作为对@SID答案的解释,要设置Actionbar的样式,您必须覆盖应用程序的整个主题

如果它们不存在,请在
Resource>values
文件夹下添加
style.XML
Colors.XML
文件,并按如下方式编辑它们:

Styles.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>
更新:

如果您愿意使用
AppCompat
ActionBarActivity
,那么您将不再需要
Styles.XML
中的
ActionBarTheme
,以下是
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>

这是一个非常简单的解决方案,请转到Xamarin.Android项目中的“styles.xml”文件,然后将以下属性替换或添加到样式中:

<!-- 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>

#002500
#002500

您的问题是我的解决方案,我使用了您的代码,做了一些轻微的修改,效果很好,随附的是结果代码的图片示例,下面是您的代码加上我修改过的代码版本

//Define ActionBar
       actionbar=SupportActionBar;
//Define Color Drawable
            ColorDrawable colorDrawable = new ColorDrawable(Color.ParseColor("#ff0f62ae"));
//Set drawable color to ActionBar
    actionbar.SetBackgroundDrawable(colorDrawable);

我想你可以创建一个样式看看我认为上面的可能,因为有人在这里尝试过:有人说它有效是的,它可能有效,但如果你有一个模式,使一切都干净,我认为你可以尝试。如果它不起作用,我们需要看看为什么?但请尝试创建你的样式ActionBar=getActionBar();条形可退根拉深(新彩色可退根拉深(蓝色));getActionBar对我不起作用,我会试试看it@Mayank请确保在您的自定义应用程序主题窗口ActionBar已关闭,NoTitle已打开。
false true
如何以及在何处将其包括在我的程序中我必须制作styles.XML并将其放入resources文件夹中。或者我是否将其放入n另一个文件夹
<?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>
<?xml version="1.0" encoding="utf-8" ?>
<resources>

  <color name="DarkBlue">#0052cc</color>
  <color name="Pink">#ff1ac6</color>
  <color name="LightBlue">#1a75ff</color>

</resources>
<!-- 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>
//Define ActionBar
       actionbar=SupportActionBar;
//Define Color Drawable
            ColorDrawable colorDrawable = new ColorDrawable(Color.ParseColor("#ff0f62ae"));
//Set drawable color to ActionBar
    actionbar.SetBackgroundDrawable(colorDrawable);