答案 0 :(得分:1)
首先,我强烈建议您迁移到新方法 - Toolbar。它更加灵活,您可以将其自定义为普通View
。
关于你的问题。
您可以以编程方式获取ActionBar
对象和setBackground
这是简短的例子
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable("COLOR IN HEX 0xFFFF6666 for instance"));
我将展示如何实现这一点。这更多是关于架构和模式。
为Fragment
使用一些基类,最好还有Activity
的基类。让我们考虑一下
public class BaseFragment extends Fragment
你片段所在的Activity
课程。
public class MainActivity extends Activity
在这种情况下,您必须定义Activity
的职责并创建接口
在您的情况下使用ActionBar
创建界面
public interface ActionBarProvider {
void setActionBarColor(ColorDrawable color);
}
让您的活动实现此界面
public class MainActivity extends Activity implements ActionBarProvider {
public void setActionBarColo(ColorDrawable color) {
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(color));
}
}
最后在BaseFragment
onAttach
public void onAttach(Context context) {
super.onAttach(context);
mActionBarProvider = (ActionBarProvider) context;
}
使mActionBarProvider
变量受到保护,并使每个片段扩展BaseFragment
,您可以更改此mActionBarProvider.setActionBarColor(new ColorDrawable());
希望这有帮助。
答案 1 :(得分:1)
我用这个解决方案解决了我的问题: