在Xamarin中,如何更改Fragment
中的ActionBar
背景色和文本颜色?
下面是在Activity
中工作的代码:
ColorDrawable colorDrawable = new ColorDrawable(Color.White);
ActionBar.SetBackgroundDrawable(colorDrawable);
int titleId = Resources.GetIdentifier("action_bar_title", "id", "android");
TextView abTitle = (TextView) FindViewById(titleId);
abTitle.SetTextColor (Color.Black);
如果我在Fragment
中有相同项目的相同代码,则会出现以下错误:
非静态字段、方法或属性"Android. App. ActionBar. SetBackgroundDrawable(Android. Graphics. Drawables. Drawable)"需要对象引用
在这一行代码中:
ActionBar.SetBackgroundDrawable(colorDrawable);
如果我注解掉上面的代码行,我会得到这个错误:
System.NullReferenceException:对象引用未设置为对象的示例
在这一行代码中:
abTitle.SetTextColor (Color.Black);
另外,我将此代码放在OnCreateView
函数中。
需要如何更改代码才能在Fragment
而不是Activity
中工作?
先谢了
4条答案
按热度按时间wixjitnu1#
我发现,要做到这一点,我需要操纵活动的操作栏
下面是代码:
vhmi4jdf2#
您可以随时使用Activity属性从片段访问Activity,该属性将返回与片段关联的Activity。
cpjpxq1n3#
在
Fragment
中,ActionBar
视图通常通过重写以下内容来处理:回调方法;在确保您已在
OnCreate()
中调用SetHasOptionsMenu(true);
之后。您可能会得到
NullReferenceException
,因为OnCreateView()是在ActionBar布局膨胀之前调用的。通常,我的方法如下所示:
zysjyyx44#
对于Kotlin用户来说,这非常简单,你只需要将你的活动转换为AppCompatActivity。