5

ユーザーがナビゲーションリストで選択したときに、アクションバーの背景の色を変更したい。

現在、私のコードは次のようになっています。

@Override
    public boolean onNavigationItemSelected(int itemPosition, long itemId) {
        ColorDrawable colorDrawable = new ColorDrawable();
        ActionBar actionBar = getActionBar();
        if(itemPosition == 0)
        {
            colorDrawable.setColor(0xffFEBB31);
            actionBar.setBackgroundDrawable(colorDrawable);
            return true;
        }
        if(itemPosition == 1)
        {
            colorDrawable.setColor(0xff9ACC00);
            actionBar.setBackgroundDrawable(colorDrawable);
            return true;
        }
        return false;
    }

ただし、ナビゲーションリストで初めてitemPosition 1を選択すると、ActionBarの色が白に変わります。

ここに画像の説明を入力してください
ナビゲーションリストのitemPosition1を2回目にクリックしても、問題はありません。

ここに画像の説明を入力してください
なぜこれなのか、どうすれば問題を解決できるのか、誰か教えてもらえますか?お手伝いありがとう!

4

3 に答える 3

10

このコードを使用してみてください:

ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ffFEBB31"));
actionBar.setBackgroundDrawable(colorDrawable); 
于 2013-03-27T00:33:38.130 に答える
6

これを試して:

myActivity.invalidateOptionsMenu();
于 2013-05-28T04:20:56.963 に答える
0

私はこれと同じ問題を抱えていました。

VisualStudioなどのXamarinユーザー向け。

これをアクティビティクラスのSetContentView(Resource.Layou......の直後に貼り付けてください。

// Setting ActionBar (Toolbar) background color natively var actionBar = this.ActionBar; actionBar.SetBackgroundDrawable(new ColorDrawable(Color.Black));

actionBar変数でさらに多くのことを行う必要があると思われる場合は、これを変更できます。

これがお役に立てば幸いです。

于 2016-10-31T12:40:57.957 に答える