不使用FEATURE_CUSTOM_TITLE,是否有可能更改活动标题栏的颜色?

7

到目前为止,我找到的所有更改活动标题栏颜色的解决方案(即通过activity.setTitle()activity.setProgress()访问的标题栏)都需要使用FEATURE_CUSTOM_TITLE

https://dev59.com/n3E95IYBdhLWcg3wluwg#2285722

但我已经在使用FEATURE_PROGRESS,而Android禁止将自定义标题与其他标题特性组合使用(通过AndroidRuntimeException方式),我不想放弃那个漂亮的进度条,因为它是我活动的重要组成部分。

关于在没有FEATURE_CUSTOM_TITLE的情况下更改活动标题栏颜色的可能性的唯一提示是在另一个SO线程中:

View titleView = getWindow().findViewById(android.R.id.titlebar);
    if (titleView != null) {
      ViewParent parent = titleView.getParent();
      if (parent != null && (parent instanceof View)) {
        View parentView = (View)parent;
        parentView.setBackgroundColor(Color.RED);
      }
    }

但是,如果我尝试直接使用该代码,android.R.id.titlebar 无法解析!

我在哪里可以找到 android.R.id.titlebar

我需要自己定义它吗?(如果答案是肯定的,那么这本质上不是 FEATURE_CUSTOM_TITLE 吗?)

2个回答

2

简短回答(目前为止,直到有更好的答案出现):不行


0

嗯,如果这个开头没有加上 "android",我会说不是 FEATURE_CUSTOM_TITLE,因为它不是一个 系统 标题栏。但由于有 "android",我真的不确定。

它看起来有点像我以前做过的事情,就是在清单中运行 android:theme="@android:style/Theme.NoTitleBar",然后在每个布局的顶部创建一个类似标题栏的视图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接