gpt4 book ai didi

android - 更改 fragment 中的 ActionBar 颜色

转载 作者:行者123 更新时间:2023-11-29 21:07:37 24 4
gpt4 key购买 nike

在 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 中为同一个项目使用相同的代码,我会收到以下错误:

An object reference is required for the non-static field, method, or property 'Android.App.ActionBar.SetBackgroundDrawable(Android.Graphics.Drawables.Drawable)'

在这行代码中:

ActionBar.SetBackgroundDrawable(colorDrawable);

如果我注释掉上面的代码行,我会得到这个错误:

System.NullReferenceException: Object reference not set to an instance of an object

在这行代码中:

abTitle.SetTextColor (Color.Black);

此外,我将这段代码放在 OnCreateView 函数中。

代码需要如何更改才能在 Fragment 中工作,而不是在 Activity 中工作?

提前致谢

最佳答案

我发现要做到这一点,我需要从 Activity 中操纵操作栏

代码如下:

public override void OnAttach(Activity activity)
{
base.OnAttach(activity);
var colorDrawable = new ColorDrawable(Color.White);
activity.ActionBar.SetBackgroundDrawable(colorDrawable);

var titleId = activity.Resources.GetIdentifier("action_bar_title", "id", "android");
var abTitle = activity.FindViewById<TextView>(titleId);
abTitle.SetTextColor(Color.Black);
}

关于android - 更改 fragment 中的 ActionBar 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23993006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com