2012-03-23 11 views
1

私はこれを長い間探しています...私はAndroid 2.2とAndroid 4.0の間で互換性のある必要があるアプリケーションを作成しています。 Android 4.0ではタブの使用が推奨されていないため、正しい方法は何でしょうか?私のテストでタブを使用していても、同じサイズ、アイコンなしのように見えますが、2.2で実行した場合、すべてのタブが一緒に押されて見えます(各タブのタイトルのサイズ、多分Horizo​​ntalScrollViewを使って私と関係がありますか?) ここで正しい決定は何でしょうか? Android 2.2と4.0のタブを使用するだけですか?そしてもしそうなら、どのように私は2.2上のタブをすべて同じサイズに設定できますか? 4.0でフラグメントを使用し、2.2でタブを使用しますか?そしてもしそうなら、私はこれをどのように実装するのですか? タブを使用する必要がある場合は、4つのタブ(動的に2から10まで)を使用し、余分な[その他]タブを追加する必要がありますか?はいの場合、どうすればいいですか?TabHostとAndroid 4.0 ICS

質問が分かりやすいと思います。もっと気にしないでください。

答えて

7

を試してみてくださいあなたはActionBarSherlockをチェックアウトすることができ - それは、Android 2.1+のための素晴らしい新しいICSのタブを提供し、完璧なサンプルを有します。

+0

これまでずっとこれを試してみたかったです...試してみてください、どうもありがとう! – user754730

+1

ようこそ。それは互換性のあるアプリケーションを作成するための素晴らしいツールです:) – Tim

+0

うわー、それは本当に...プレイストアからデモアプリケーションをインストール...本当に素晴らしいです!もう一度おねがいします。今私は確かに私はアプリケーションのActionBarSherlockを使用すると思う! – user754730

0

はこのコード

public class WebMenu extends TabActivity { 
    //Intent intent; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.tebmenu); 

     Resources res = getResources(); 
     TabHost tabHost = getTabHost(); 
     TabHost.TabSpec spec; 

     Intent intent = new Intent().setClass(this, Add_webpage.class); 
     spec = tabHost 
       .newTabSpec("Add new Web Page") 
       .setIndicator("New", 
         res.getDrawable(R.drawable.folder_web_blue)) 
       .setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, WebHistory.class); 
     spec = tabHost.newTabSpec("Web History") 
       .setIndicator("History", res.getDrawable(R.drawable.webhistory)) 
       .setContent(intent); 
     tabHost.addTab(spec); 

     intent = new Intent().setClass(this, WebList.class); 
     spec = tabHost.newTabSpec("Web List") 
       .setIndicator("List", res.getDrawable(R.drawable.weblist)) 
       .setContent(intent); 
     tabHost.addTab(spec); 

     tabHost.setCurrentTab(2); 
    } 
} 
+0

ありがとうございました! しかし、私はあなたがそれを正しい方法で理解しているとは思わない。私はすでに自分のコードを書いています。私は私のタブなどを持っています。私はどちらが正しい方法であると思っていましたか? – user754730