如何在代码中更改拆分操作栏的颜色,而不是在xml中?我的用户可以选择操作栏的颜色,我希望它也可以更改分割操作栏的颜色(显示在屏幕底部的操作栏)。
我正在使用android manifest
中的android:uiOptions="splitActionBarWhenNarrow"
实现splitActionBar
到目前为止,我正在尝试这个,但它无法正常工作
final int splitBarId = getResources().getIdentifier("split_action_bar", "id", "android");
final View splitActionBar = findViewById(splitBarId);
if (splitActionBar != null) {
splitActionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(actionbar_colors)));
}
}
答案 0 :(得分:1)
框架没有提供以编程方式更改它的方法;但是,您可以使用Resources.getIdentifier
查找View
并从那里调整背景Drawable
。
The internal id is split_action_bar
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
final int splitBarId = getResources().getIdentifier("split_action_bar", "id", "android");
final View splitActionBar = findViewById(splitBarId);
if (splitActionBar != null) {
// Adjust the background drawable
}
}
<强>更新强>
显然有ActionBar.setSplitBackgroundDrawable
。绝对使用该回调而不是Resources.getIdentifier
。
以下是结果的屏幕截图:
答案 1 :(得分:1)
使用此选项可更改分割操作栏颜色
getActionBar().setSplitBackgroundDrawable(new ColorDrawable(Color.parseColor("#33B5E5")));
如果您使用支持操作栏
,请使用此功能getSupportActionBar().setSplitBackgroundDrawable(new ColorDrawable(Color.parseColor("#33B5E5")));
答案 2 :(得分:0)
这应该有效
ActionBar mActionBar = getActionBar();
mActionBar.setBackgroundDrawable(new ColorDrawable(0xff00DDED));
mActionBar.setDisplayShowTitleEnabled(false);
mActionBar.setDisplayShowTitleEnabled(true);