更改标签的背景色并删除标签之间的分隔线

问题描述

| 我想在应用程序中显示标签,但是认情况下,在android中,标签之间有分隔线
                            Tab1 | Tab2 | Tab3 |
但是我想显示这样的标签
                            Tab1 Tab2 Tab3
所以我想删除两个选项卡之间的分隔线,并且认情况下,选项卡的背景色是灰色。所以我想将其更改为黑色。 请说明如何删除两个标签间的分隔线并更改标签的背景颜色。 提前致谢。 最好的祝福。     

解决方法

        使用此方法和布局可为选项卡使用您自己的布局。要卸下分隔线,只需将背景9patch图形替换为您自己的分隔线即可。
public static View prepareTabView(Context context,String text,Drawable background) {
    View view = LayoutInflater.from(context).inflate(R.layout.fake_native_tab,null);
    TextView tv = (TextView) view.findViewById(R.id.fakeNativeTabTextView);
    tv.setText(text);
    view.setBackgroundDrawable(background);
    return view;
}
fake_native_tab.xml:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:id=\"@+id/fakeNativeTabLayout\" android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\" android:gravity=\"center\"
android:orientation=\"vertical\" android:background=\"@drawable/default_tab_background\">
<!--
       You can even define an Icon here (dont forget to set a custom icon in your code for each Tab):
    <ImageView android:id=\"@+id/fakeNativeTabImageView\"
    android:layout_width=\"wrap_content\"
    android:layout_height=\"wrap_content\" android:src=\"@drawable/icon\" />
-->
    <TextView android:id=\"@+id/fakeNativeTabTextView\"
    android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\"
    android:textColor=\"@color/tab_text_color\" android:textSize=\"@dimen/text_size_tiny\"
    android:text=\"Tab\" android:ellipsize=\"marquee\" />

</LinearLayout>
用法(在
TabActivity
内):
/* Create Tabs */
// reusable Tab Spec
TabHost.TabSpec spec;
Intent tabIntent;
tabHost = getTabHost();
Resources res = getResources();

// Tab 1:
tabIntent = new Intent().setClass(this,Favorite.class);
    spec = tabHost.newTabSpec(TAB_SOMETAB).setIndicator(
            prepareTabView(this,(String) getText(R.string.tab_favorite),res
                    .getDrawable(R.drawable.tab_favorite_background),0)).setContent(tabIntent);
tabHost.addTab(spec);



// Tab 2:
tabIntent = new Intent().setClass(this,History.class);
spec = tabHost.newTabSpec(TAB_SOMEOTHERTAB).setIndicator(
            prepareTabView(this,(String) getText(R.string.tab_history),0)).setContent(tabIntent);
tabHost.addTab(spec);
    ,        采用:
tabHost.getTabWidget().setDividerDrawable(null);
删除分隔线。     ,        我在ICS中遇到问题,可以看到分隔线。除以下内容外,所有解决方案均无效。
<TabWidget
            android:id=\"@android:id/tabs\"
            android:layout_width=\"match_parent\"
            android:layout_height=\"60dp\"
            android:gravity=\"bottom\"
            android:layout_alignParentBottom=\"true\"
            android:fadingEdge=\"none\"
            android:showDividers=\"none\" >
        </TabWidget>
关键是was8ѭ