我创建了一个名为 ActionbarBackground 的自定义 Drawable 类,它为我的 Actionbar 的背景实现了一些特殊的绘图行为。当我在平板电脑上测试应用程序时,出现以下故障:
当应用程序启动时,actionbar 的内容被绘制在背景下方,将整个 Activity 的内容向下推。
例子:
触摸屏幕后,重新绘制完成,操作栏的内容完全消失。Activity 的内容然后向上移动。
例子:
这个问题发生在 2 个活动中,我不知道为什么。我尝试从 XML 资源提供自定义可绘制对象,一切正常,但此背景需要编程绘图。
操作栏设置如下:
this.getActionBar().setDisplayShowTitleEnabled(false);
this.getActionBar().setIcon(R.drawable.actionbar_icon_and_title);
this.getActionBar().setBackgroundDrawable(new ActionbarBackground(this));
ActionbarBackground 的实现通常如下所示:
@Override
public void draw(Canvas canvas)
{
// Do special drawing on canvas object
}
@Override
public int getOpacity() {
return PixelFormat.OPAQUE;
}
@Override
public void setAlpha(int alpha) {
// Do nothing
}
@Override
public void setColorFilter(ColorFilter filter) {
// Do nothing
}
任何想法为什么会发生这种情况以及如何解决它?