我正在尝试更改片段中的操作栏背景颜色,并且我正在使用
ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ffffff"));
getSupportActionBar().setBackgroundDrawable(colorDrawable);
更改颜色但在片段中
getSupportActionBar()
对我来说还没有解决`
答案 0 :(得分:0)
您必须需要这样的东西:
((MainActivity) getActivity()).getSupportActionBar().setBackgroundDrawable(colorDrawable);
答案 1 :(得分:0)
getSupportActionBar
。要从片段访问它,可以执行以下操作:
private Context _context;
...
@Override
public void onAttach(Context context)
{
super.onAttach(context);
_context = context;
}
...
((AppCompatActivity)_context).getSupportActionBar().setBackgroundDrawable(colorDrawable);
从onAttach获取Context
是个好习惯,因为稍后调用getContext()
或getActivity()
可能会导致NullPointerException
。
答案 2 :(得分:0)
首先请确保您已实现支持依赖项
在依赖项下的build.gradle(模块级别,而非应用程序级别)中,检查您是否具有正确的权限:
//Verify the version is matching your other support dependency versions
implementation "com.android.support:support-v4:28.0.0"
然后您可以通过以下示例访问片段:
private ActionBar supportActionBar;
...
//inside on attach
supportActionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
还请确保您已导入正确的SupportActionBar