Androidマーケットのようなタブバー(アプリ/ゲーム/ダウンロード)を実装するための最良の方法は何ですか?
TabHostを使用できれば素晴らしいのですが、このレベルのカスタマイズはできないと思います。
Androidマーケットのようなタブバー(アプリ/ゲーム/ダウンロード)を実装するための最良の方法は何ですか?
TabHostを使用できれば素晴らしいのですが、このレベルのカスタマイズはできないと思います。
Cristianが言ったように、それを使用することは間違いなく可能TabHost
であり、彼がリンクしているandroidtabsコードを使用する必要さえありません。SDKレベル4(つまり、Android 1.6)では、にを渡すことができView
ますTabHost.TabSpec.setIndicator()
。これにより、タブの外観を完全に制御できます。
ただし、マーケットでこれらのボタンのいずれかをタップすると、新しいアクティビティが開きます。そのため、単純なButton
sを使用すると、TabHostよりもその動作をより厳密に反映する可能性があります。
1.5もサポートする必要がある場合は、この投稿からzipアーカイブを確認できます。Android1.6のTabHostなどが含まれています。これをプロジェクトにコピーすると、Android1.5でも機能するはずです。これで、setIndicator(View v)を使用できるようになります。
を使用して行うことが可能ですTabHost
。さらに良いことに、それを行う方法の完全に機能する例をここで見つけることができます:http ://code.google.com/p/androidtabs/
このコードを試してみましょう:
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);
この作業は、tab.xml
ファイルを変更することで実行できます。線形レイアウトではtab.xml
、最初に画像とラベルを含む1つの子レイアウトを使用します(Androidマーケット)この子レイアウトの下に、タブホストとフレームレイアウトを配置します。その後、このタスクを実行できます。