我有一个使用TabActivity的应用程序,但它在ICS上呈现错误。对ActionBar或Fragments并不感兴趣,因为标签仍然适用于我和其他应用程序。
以下是所有其他版本的android(所需外观)的样子 http://i44.tinypic.com/fb9jya.png
这就是它在ICS上的样子,不正确。
http://i44.tinypic.com/35btjl2.png
这是我的tabactivity选项卡代码,需要更改什么?
intent = new Intent().setClass(this, HomeMenuGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = tabHost.newTabSpec("homeMenuGroup").setIndicator(li.inflate(R.layout.main_tabs_home, tabHost.getTabContentView(), false))
.setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, BuyTicketsGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = tabHost.newTabSpec("buyTicketsGroup").setIndicator(li.inflate(R.layout.main_tabs_buy, tabHost.getTabContentView(), false))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, UseTicketsGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = tabHost.newTabSpec("useTicketsGroup").setIndicator(li.inflate(R.layout.main_tabs_use, tabHost.getTabContentView(), false))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, MyAccountGroup.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = tabHost.newTabSpec("myAccountGroup").setIndicator(li.inflate(R.layout.main_tabs_account, tabHost.getTabContentView(), false))
.setContent(intent);
tabHost.addTab(spec);
这是我的标签按钮布局xml R.layout.main_tabs_account
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:background="@drawable/switcher_account"
android:layout_width="80dip"
android:layout_height="60dip"/>
</LinearLayout>
答案 0 :(得分:2)
很难给出明确的答案。例如,您引用的R.layout.main_tabs_account
布局不包含ImageView
,屏幕截图显示,表示您的问题中的某些内容不同步。
话虽如此,这就是我想要的:
将尺寸从TextView
移至LinearLayout
。你的文字不应该是80x60 dip;你的标签大概是。
考虑发布包含TabHost
和TabWidget
的布局,因为这可能会提供更多线索。
查看this project,我在哪里使用自定义标签,看看我接触它的方式是否有帮助。这个项目在Android 4.0上运行良好。