【问题标题】:How can I change the ActionBar color of individual fragments in Android?如何更改 Android 中各个片段的 ActionBar 颜色?
【发布时间】:2020-01-23 01:31:07
【问题描述】:

有什么办法可以改变Fragment的ActionBar颜色,将ActionBar中显示的标题改成被按下的菜单选项的标题?

【问题讨论】:

    标签: android android-fragments android-actionbar android-actionbaractivity


    【解决方案1】:

    如果您使用的是 AppCompat,则必须始终调用 getSupportActionBar()

    更改标题: getSupportActionBar().setTitle("Your Title");

    改变颜色: getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.YOUR_COLOR));

    如果在片段中:

    更改标题: getActivity().getActionBar().setTitle("YOUR TITLE");

    改变颜色: getActivity().getAcationBar().setBackgroundDrawable(new ColorDrawable(Color.YOUR_COLOR));

    希望对你有帮助

    【讨论】:

    • 我可以用 getActivity().setTitle("Test");但是,当我实现颜色时,应用程序在打开我更改颜色的片段时崩溃。
    • getActivity()之后使用getActionBar()
    • 是的,我试过了。代码上传正常,我可以将我的应用程序打开到其主屏幕,但是当我单击菜单图标将我带到带有更改颜色操作栏的片段时,应用程序崩溃了。
    【解决方案2】:

    这是用java编写的建议答案:

      getActionBar().setTitle("Test");
      getActionBar().setBackgroundDrawable(new ColorDrawable("COLOR"));
    

    【讨论】:

    • 我可以用 getActivity().setTitle("Test");但是,当我使用您的或@Muhammad 的代码实现颜色时,应用程序在打开我更改颜色的片段时崩溃。
    【解决方案3】:

    如果您使用支持库:

    android.support.v7.app.ActionBar supportActionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
    
    if (supportActionBar  != null) {
        supportActionBar.setTitle("My action bar title");
        View view = new View(getContext());
        view.setBackgroundColor(getResources().getColor(R.color.my_color)); 
        supportActionBar.setBackgroundDrawable(view.getBackground());
    }
    

    否则:

    android.app.ActionBar actionBar = getActivity().getActionBar();
    if (actionBar != null) {
        actionBar.setTitle("My action bar title");
        View view = new View(getContext());
        view.setBackgroundColor(getResources().getColor(R.color.my_color));         
        actionBar.setBackgroundDrawable(view.getBackground());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 2016-12-11
      • 2015-01-04
      相关资源
      最近更新 更多