What\'s the best way to implement an Android Market-like tabbar (Apps/Games/Downloads)?
Let try this code:
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);
As Cristian said, it's definitely possible using a TabHost
, and you don't even need to use the androidtabs code that he links to. As of SDK level 4 (i.e. Android 1.6) you can pass a View
to TabHost.TabSpec.setIndicator(), which will allow you to completely control the look of the tabs.
However, tapping either of those buttons in the Market opens up a new Activity, and as such, using simple Button
s might more closely reflect that behaviour than a TabHost would.
In the event that you need to support 1.5 as well, you could check out the zip archive from this post. It contains TabHost etc. from Android 1.6. Copying this into your project should work, even on Android 1.5. You'll then have setIndicator(View v) available to you.
You can do this job by changing the tab.xml
file.
In tab.xml
in linear layout, first use one child layout, which contains image and label(android market)
Below this child layout, put tab host and frame layout.
You can achieve this task then.
It's possible to do using TabHost
. Even better, you can find a fully functional example of how to do it here: http://code.google.com/p/androidtabs/