0

以下是我的Tab類。我試圖在選中和取消選中時更改選項卡的背景顏色。如果您嘗試使用自己的顏色(我已經完成)自定義選項卡,爲什麼未選定的選項卡下的邊框與選定的選項卡顏色相同?讓我給你看一張圖片:http://tinypic.com/view.php?pic=335e6ae&s=6如何更改顏色/刪除Android標籤下的標籤/ broder?

在圖片的左邊你有模擬器的真實外觀。在右邊你有我的photoshoped期望的外觀。正如你可以在模擬器中看到的,未選定標籤下的邊框仍然具有標準的灰色顏色?是否可以更改或刪除此邊框/標籤?我怎麼改變它?

目前我通過void initTabsAppearance()方法自定義我的選項卡,其中我使用選擇器在xml文件中設置背景。沒什麼特別的或fansy三色堇...

public class Tabs extends TabActivity 
{ 
private static final String TAG = "TabHostActivity"; 
private boolean mHaveShownStartDialog = false; 


@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.tab_host); 
setOnCreatePreferences(); 

try 
{ 

    addTab(getString(R.string.Search), R.drawable.searchtab, SearchTask.class); 
    addTab(getString(R.string.Bookmarks), R.drawable.favoritetab, Bookmarks.class); 
    addTab(getString(R.string.Latest), R.drawable.historytab, Latest.class); 
    addTab(getString(R.string.QAndA), R.drawable.forumtab, LatestFeedback.class); 

    getTabHost().setCurrentTab(0); 
    TabWidget widget = getTabHost().getTabWidget(); 


    this.initTabsAppearance(widget); 


} 
catch(Exception e) 
{ 
    Log.e(TAG, e.getMessage()); 
} 
} 

private void addTab(CharSequence label, int drawable_id, Class<?> c) 
{ 
TabHost.TabSpec spec = getTabHost().newTabSpec("tab" + " "+ label); 

spec.setIndicator(label, getResources().getDrawable(drawable_id)); 

spec.setContent(new Intent().setClass(this, c)); 

getTabHost().addTab(spec); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.menu.tabs_menu, menu); 
return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
switch (item.getItemId()) 
{ 
    case R.id.tabs_menu_options_item: 
     //startActivityForResult(new Intent(this, Options.class) , 0); 
     return true; 

    default: return super.onOptionsItemSelected(item); 
} 
} 

private void initTabsAppearance(TabWidget tabWidget){ 

for(int i=0; i<tabWidget.getChildCount(); i++) 

    tabWidget.getChildAt(i).setBackgroundResource(R.drawable.tabcolors); //unselected 
//((TextView) tabWidget.getChildAt(getTabHost().getCurrentTab())).setTextColor(0xffffffff); 
//getTabHost().getTabWidget().getChildAt(getTabHost().getCurrentTab()).setBackgroundColor(Co lor.parseColor("#000000")); //selected 
} 

private void setOnCreatePreferences() 
{ 
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 

boolean mUseStartDialog = preferences.getBoolean("use_dialog", true); 
if(mUseStartDialog) 
{ 
    if(!mHaveShownStartDialog) 
    { 
     mHaveShownStartDialog = true; 
     startActivity(new Intent(this, WelcomeDialog.class)); 
    } 
} 
} 

} 

tabcolors.xml

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:state_selected="true"  
android:drawable="@color/tabWhite"/> 

<item android:state_pressed="true" 
android:drawable="@color/tabBlack"/> 

<item android:drawable="@color/tabBlack"/> 

</selector> 

回答