1

ActionbarBackground というカスタム Drawable クラスを作成しました。このクラスは、Actionbar の背景に特別な描画動作を実装します。タブレットでアプリをテストすると、次の不具合が発生します。

アプリが起動すると、アクションバーのコンテンツが背景の下に描画され、アクティビティ全体のコンテンツが押し下げられます。

例: ここに画像の説明を入力

画面に触れると、再描画が行われ、アクションバーの内容が完全に消えます。その後、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