我想繪製一個actionbarsherlock的選項卡圖標。要做到這一點,而不是設置一個選項卡圖標,我試圖創建一個與其他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);
然後我在Tab上調用setCustomView()。當我想要在選項卡上編寫代碼時,我可以通過使用getCustomView從選項卡中檢索視圖來完成此操作。
如果我沒有指定使用android.R.attr.actionBarTabStyle創建上面的LinearLayout,它可以工作,但是圖標並沒有放在標籤的中心。如果我使用該Id設置了屬性,我的應用程序在啓動時崩潰了android.widget.LinearLayout中的NoSuchMethodError。
什麼是使用android屬性設置樣式的正確方法?
你怎麼最後設置'ScrollingTabContainerView'的看法? – 2012-09-19 20:21:03