タブレットのアクションバータブと電話のViewPagerの両方でフラグメントを使用することは可能ですか?電話はサポートライブラリを使用しており、アクションバーのTabListenerと互換性がないようです。両方に同じフラグメントを使用させるためのトリックはありますか?
私がこれまでに見た唯一の可能な回避策はこれです。
ありがとう
タブレットのアクションバータブと電話のViewPagerの両方でフラグメントを使用することは可能ですか?電話はサポートライブラリを使用しており、アクションバーのTabListenerと互換性がないようです。両方に同じフラグメントを使用させるためのトリックはありますか?
私がこれまでに見た唯一の可能な回避策はこれです。
ありがとう
確かにActionBarTabsPager
、互換性ライブラリのソースにあるサンプルを確認してください。タブの切り替えとページングを処理するには、アダプタに両方のインターフェイスを実装する必要があります。このようなもの:
public class TabsPagerAdapter extends FragmentPagerAdapter implements
ViewPager.OnPageChangeListener, ActionBar.TabListener {
// implement both
}
次のようなタブを追加する必要があります(サポート/互換性ライブラリを使用)。
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);
http://developer.android.com/training/backward-compatible-ui/index.html
これは、ActionBar.TabおよびTabListenerとの互換性ライブラリのフラグメントを使用するための良い方法です。
これは、NikolayElenkovの回答からのTabsPagerAdapterhttps : //wwwjdic.googlecode.com/svn-history/r684/branches/2.0/wwwjdic/src/org/nick/wwwjdic/TabsPagerAdapter.javaの実装例です。
アイデアはandroid-support-v13.jarを使用することです。このファイルには、ネイティブフラグメント用のFragmentPagerAdapterとViewPagerが含まれています。