我正在尝试在操作栏下创建自定义标签。我的操作栏已被其他小部件占用,因此无法将选项卡移动到操作栏。选项卡需要包含图像和文本。我有两个问题:
1)当我这样做时:
mTabHost.addTab(mTabHost.newTabSpec("Local").setIndicator("Local", getResources().getDrawable(R.drawable.local_selector)).setContent(R.id.local_image));
我看到了文字而没有图片。如果我这样做:
mTabHost.addTab(mTabHost.newTabSpec("Local").setIndicator("", getResources().getDrawable(R.drawable.local_selector)).setContent(R.id.local_image));
我看到图片,但我没有收到所需的文字。
2)文本和图像的背景颜色与TabWidget的颜色不匹配。它匹配整个应用程序的默认背景颜色。
我也尝试在RelativeLayout中创建标签并按照以下方式实现它们:
RelativeLayout localView = (RelativeLayout)inflater.inflate(R.layout.local_tab, null);
mTabHost.addTab(mTabHost.newTabSpec("Local").setIndicator(localView).setContent(R.id.local_image));
这为我提供了具有正确背景颜色的所需图像+文本组合,但标签不再像标签一样。没有分隔线,所选标签不亮。
答案 0 :(得分:1)
tabHost = getTabHost();
TabSpec spec_info = tabHost.newTabSpec(getString(R.string.info));
spec_info.setIndicator(getString(R.string.info), null);
Intent Intent_info = new Intent(this, RestaurantInfoActivity.class);
spec_info.setContent(Intent_info);
tabHost.addTab(spec_info);
tabHost.getTabWidget().getChildTabViewAt(0).setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_selector));
tabHost = getTabHost();
TabSpec spec_info = tabHost.newTabSpec(getString(R.string.info));
spec_info.setIndicator(getString(R.string.info), null);
Intent Intent_info = new Intent(this, RestaurantInfoActivity.class);
spec_info.setContent(Intent_info);
tabHost.addTab(spec_info);
tabHost.getTabWidget().getChildTabViewAt(0).setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_selector));
XML
选择
<TabHost
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:orientation="vertical"
android:fadingEdge="none"
android:overScrollMode="never"
>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:tabStripEnabled="false" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</TabHost>
答案 1 :(得分:1)
我找到了解决问题的方法。在我的主题中,我设置android:background而不是android:windowBackground。一旦我使用了android:windowBackground,颜色就会更好地协同工作。
然后我创建了包含文本的新图像。经过大量的调整,我最终让它看起来像我想要的那样。