实现类似 Android Market 的标签栏(应用程序/游戏/下载)的最佳方式是什么?
如果我可以使用 TabHost,那就太好了,但我相信它不允许这种级别的自定义。
实现类似 Android Market 的标签栏(应用程序/游戏/下载)的最佳方式是什么?
如果我可以使用 TabHost,那就太好了,但我相信它不允许这种级别的自定义。
正如克里斯蒂安所说,绝对可以使用 a TabHost
,您甚至不需要使用他链接到的 androidtabs 代码。从 SDK 级别 4(即 Android 1.6)开始,您可以将 a 传递View
给TabHost.TabSpec.setIndicator()
,这将允许您完全控制选项卡的外观。
但是,点击 Market 中的任何一个按钮都会打开一个新的 Activity,因此,使用简单Button
的 s 可能比 TabHost 更能反映这种行为。
如果您还需要支持 1.5,您可以从这篇文章中查看 zip 存档。它包含来自 Android 1.6 的 TabHost 等。将其复制到您的项目中应该可以工作,即使在 Android 1.5 上也是如此。然后您就可以使用 setIndicator(View v) 了。
可以使用TabHost
. 更好的是,您可以在这里找到一个功能齐全的示例:http ://code.google.com/p/androidtabs/
tab.xml
您可以通过更改文件来完成这项工作。在线tab.xml
性布局中,首先使用一个子布局,其中包含图像和标签(android market)在这个子布局下方,放置标签主机和框架布局。那么你就可以完成这个任务了。
让我们试试这段代码:
TabHost.TabSpec spec; // Reusable TabSpec for each tab
TextView txtTabInfo; // Reusable tab indicator
// Create our tab indicator
txtTabInfo = new TextView(this);
txtTabInfo.setText("videos");
txtTabInfo.setTextSize(16);
txtTabInfo.setTypeface(Typeface.DEFAULT_BOLD);
txtTabInfo.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
txtTabInfo.setBackgroundResource(R.drawable.minitab);
txtTabInfo.setMinHeight(55);
spec = tabHostMM.newTabSpec("video");
spec.setContent(R.id.mm_video);
spec.setIndicator(txtTabInfo);
tabHostMM.addTab(spec);