如何在Android选项卡下更改颜色/删除标签/边框?

如何在Android选项卡下更改颜色/删除标签/边框?,android,tabs,android-widget,android-activity,android-tabhost,Android,Tabs,Android Widget,Android Activity,Android Tabhost,下面是我的Tab类。我正在尝试更改选项卡的背景色,无论是选中还是取消选中。如果您尝试使用自己的颜色自定义选项卡(我已经这样做了),为什么未选中选项卡下的边框与所选选项卡的颜色不相同?让我给你看一张照片: 在图片的左侧,您可以看到模拟器的真实外观。右边是我想要的样子。正如您在emulator中看到的,未选中选项卡下的边框仍为标准灰色?是否可以更改或删除此边框/标签?我该怎么改变它 目前,我通过void inittabsapearance()方法自定义我的选项卡,在该方法中,我使用选择器在xml文件

下面是我的Tab类。我正在尝试更改选项卡的背景色,无论是选中还是取消选中。如果您尝试使用自己的颜色自定义选项卡(我已经这样做了),为什么未选中选项卡下的边框与所选选项卡的颜色不相同?让我给你看一张照片:

在图片的左侧,您可以看到模拟器的真实外观。右边是我想要的样子。正如您在emulator中看到的,未选中选项卡下的边框仍为标准灰色?是否可以更改或删除此边框/标签?我该怎么改变它

目前,我通过void inittabsapearance()方法自定义我的选项卡,在该方法中,我使用选择器在xml文件中设置背景。没有什么特别的或狂热的三色堇

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 ) );
    }
}
}

}
public类选项卡扩展了TabActivity
{
私有静态最终字符串TAG=“TabHostActivity”;
私有布尔值mHaveShownStartDialog=false;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tab\u主机);
setOnCreatePreferences();
尝试
{
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.inittabsapearance(小部件);
}
捕获(例外e)
{
Log.e(标记,e.getMessage());
}
}
私有void addTab(字符序列标签,int-drawable_-id,c类)
{
TabHost.TabSpec spec=getTabHost().newTabSpec(“tab”+“”+标签);
spec.setIndicator(标签,getResources().getDrawable(drawable_id));
spec.setContent(new Intent().setClass(this,c));
getTabHost().addTab(规范);
}
@凌驾
公共布尔onCreateOptions菜单(菜单)
{
MenuInflater充气机=getMenuInflater();
充气机。充气(右菜单。选项卡菜单,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项)
{
开关(item.getItemId())
{
案例R.id.选项卡\菜单\选项\项目:
//startActivityForResult(新意图(此,Options.class),0);
返回true;
默认:返回super.onOptionsItemSelected(项目);
}
}
私有void inittabsapearance(TabWidget TabWidget){
对于(inti=0;i它被称为tabStrip。
要删除它,您可以执行以下操作

tabWidget.setStripEnabled(false);
有关如何自定义的文档可在此处找到:

tabWidget.setStripEnabled(false);