1

我创建了一个名为 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
}

任何想法为什么会发生这种情况以及如何解决它?

4

0 回答 0