0

TabWidget にスタイルを適用しようとしています。

などの方法をいくつか試しました。

for(int i=0;i < tabHost.getTabWidget().getChildCount();i++) tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#7392B5"));

from Androidタブウィジェットの背景を変更するにはどうすればよいですか?

ただし、このコードは機能しません。また、いくつかの XML スタイルをいじってみました。最も近いのは Divider を設定することですが、これによりタブウィジェット全体が単色になり、タブが上に描画されなくなります。

助けてください。Mark の本では、タブのアイコンの設定についてのみ触れられており、色は変更されていません。これは単純であるべきだと思いますが、TabWidgets と Hosts がすべてを難しくしています。

1.6 と 2.2 の両方のプラットフォームをターゲットにしてこのコードを試しましたが、どちらの API も機能しません。

ありがとう

4

1 に答える 1

1

タブの背景は、実際にはStateListDrawableに設定されたNinePatch画像です。を呼び出すとsetBackgroundColor()、セット StateListDrawable が単純な色に置き換えられるため、タブ全体がその色に変わります。あなたがしなければならないことは、各状態 (フォーカス、押された状態など) に必要な色とスタイルである NinePatch タブ画像を実際に変更 (または独自に描画) することです。

別の方法として、ここで説明されているようにコードで ColorFilter を設定することもできます( getBackground()TabWidget とボタンで機能します) が、個人的には NinePatch ルートを使用することをお勧めします。

于 2010-11-18T22:30:25.670 に答える