アクションバーセクションのタブアイコンの1つを描画したいと思います。これを行うには、タブのアイコンを設定する代わりに、他のABSタブとまったく同じスタイルになるビューを作成しようとしています。 abs4がScrollingTabContainerViewにタブを追加しているようです。 ScrollingTabContainerViewのTabViewクラスは、アイコンを取得してタブの中央に配置する役割を担っているようです。そのため、update()メソッドのコードで次のコードをモデル化しました。ActionBar Sherlockタブのカスタムビューを設定する
Drawable icon = getResources().getDrawable(resid);
LinearLayout ll = new LinearLayout(this, null, android.R.attr.actionBarTabStyle);
ImageView iconView = new ImageView(this);
ActionBar.LayoutParams lp = new ActionBar.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
lp.gravity = Gravity.CENTER_VERTICAL;
iconView.setLayoutParams(lp);
ll.addView(iconView, 0);
iconView.setImageDrawable(icon);
次に、タブでllを使用してsetCustomView()を呼び出します。私がタブに上書きしたいときは、getCustomViewを使ってタブからビューを取得します。
上記のLinearLayoutの作成をandroid.R.attr.actionBarTabStyleで指定しないと、それは機能しますが、アイコンはタブの中央に配置されません。そのIDで属性を設定すると、起動時に、アンドロイド.widget.LinearLayoutのNoSuchMethodErrorでアプリケーションがクラッシュします。
android属性を使用してスタイルを設定する適切な方法は何ですか?
を? –