我可以使用以下代码在onCreate
中设置ActionBar。
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setIcon(android.R.color.transparent);
actionBar.setBackgroundDrawable(getResources().getDrawable(
R.drawable.myDrawable1));
actionBar.setTitle("");
所以会发生什么是用户单击按钮并调用下面的方法来显示列表视图。在这里,我成功地将动作栏的背景更改为R.id.myDrawable2。
public void displayList() {
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setIcon(android.R.color.transparent);
actionBar.setBackgroundDrawable(getResources().getDrawable(
R.drawable.myDrawable2));
// actionBar.setTitle("Some Nonempty text"); // If I uncomment this line then action bar background is correctly displayed.
// Display listview
.
.
.
}
现在,用户点击列表视图的项目并启动另一项活动。用户返回上一个活动时出现问题。 回来后,动作栏背景消失了。它是纯白色的。
当用户回来时,用户应该看到该列表视图。所以我调用上面显示listview的方法并将操作栏背景更改为myDrawable2
。但在这里,操作栏背景重置为纯白色。
注意:如果我将操作栏标题设置为某些非空文本,则会以正确的背景显示。
我找到了一个临时解决方法,在将文本设置为某些文本后立即将文本重置为“”。但这不是一个合适的解决方案。
有谁能告诉我背景设置有什么问题?
编辑:我注意到只有从下一个活动回来时才会出现这个问题。如果用户在同一活动中,那么我可以毫无问题地更改背景。例如,当用户点击取消隐藏列表时,我可以更改操作栏背景。当用户点击按钮显示列表视图时,再次能够执行此操作。