我正在使用ActionBarSherlock。在Android 3.0+上,ActionBar下有一个微妙的阴影。但不是年长的机器人。
问题是,android:windowContentOverlay
中设置的阴影出现在活动窗口的顶部。在旧的Androids上,ActionBar是Window的一部分。因此阴影覆盖在ActionBar的顶部,而不是覆盖ActionBar下的内容。
有没有办法解决这个问题,而无需手动将阴影插入每个Activity的布局?
答案 0 :(得分:1)
正如@wingman在评论中暗示的那样,我在我的基地setContentView(...)
中覆盖了Activity
,如下所示:
@Override
public void setContentView(int layoutResId) {
View view = getLayoutInflater().inflate(layoutResId, null);
setContentView(view);
}
@Override
public void setContentView(View view) {
int wrapContent = ViewGroup.LayoutParams.WRAP_CONTENT;
int matchParent = ViewGroup.LayoutParams.MATCH_PARENT;
view.setLayoutParams(new ViewGroup.LayoutParams(matchParent, matchParent));
View shadow = new View(this);
shadow.setBackgroundResource(R.drawable.action_bar_shadow);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(matchParent,
wrapContent);
shadow.setLayoutParams(params);
RelativeLayout container = new RelativeLayout(this);
container.addView(view);
container.addView(shadow);
super.setContentView(container);
}