2011-11-08 18 views
2

タブレットアクションバータブと電話ViewPagerの両方でフラグメントを使用することはできますか?携帯電話はサポートライブラリを使用していると思われ、アクションバーのTabListenerと互換性がありません。両方に同じフラグメントを使用させることには、トリックはありますか?アクションバータブとビューページャのフラグメント

これまでに見た唯一の回避策はthisです。

おかげ

答えて

7

確かに、互換ライブラリのソースでActionBarTabsPagerサンプルをチェックしてください。タブの切り替えとページングを処理するには、アダプタに両方のインターフェイスを実装する必要があります。このような何か:これは、互換性ライブラリからフラグメントを使用するための良い方法です

getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

viewPager = (ViewPager) findViewById(R.id.content); 
tabsAdapter = new TabsPagerAdapter(this, getSupportActionBar(), 
       viewPager); 
ActionBar.Tab tab = getSupportActionBar().newTab(); 
MyFragment f = new MyFragment(); 
tabsAdapter.addTab(tab, f); 
+0

これはいいですが、タブはタブレットのアクションバーにはありません。 – Metallicraft

+0

もちろん、ActionBar APIを使用してタブを追加する必要があります。改訂された投稿を参照してください。これは実際のプロジェクトからのものなので、私はそれがうまくいくと確信しています:)。 –

+0

-san!おもしろい!あなたの名前に関する最初の回答が私に打たれたので...今日の2回目の回答を読んで、私のタブレットは私にインストールされたアプリのアップグレードがあることを通知します。あなたは... WWWJDIC。 :-) ...そして、TabPagerは実際にそこでもうまく動作します!私も漢字認識装置をインストールしました。ご協力いただきありがとうございます。 – Metallicraft

0

http://developer.android.com/training/backward-compatible-ui/index.html

:あなたは(サポート/互換性ライブラリを使用して)このようなタブを追加する必要があります

public class TabsPagerAdapter extends FragmentPagerAdapter implements 
     ViewPager.OnPageChangeListener, ActionBar.TabListener { 
     // implement both 
} 

ActionBar.TabとTabListenerを使用します。

0

アイデアはandroid-support-v13.jarを使用することです。このファイルには、ViewPagerだけでなく、ネイティブフラグメントのFragmentPagerAdapterが含まれています。

関連する問題