サブアイテム間でスワイプする機能を含む、Android アプリケーション (タブレットの場合は上部のレイアウト、スマートフォンの場合は下部のレイアウト) に次のレイアウトを実現したいと考えています。
それで、正常に動作する Eclipse でマスター/詳細フロー アクティビティを作成しました。タブについては、Support-Library Samples ( ) を参照しました。ここでは、クラスを拡張し、-Widgetを使用<sdk>/extras/android/support/v4/samples/
する美しい例 (FragmentTabsPager.java) が示されています。FragmentActivity
ViewPager
TabHost
私のアイデアは、両方の例を 1 つのアプリケーションに結合することだったので、TabPage を Activity として使用する代わりに、Fragment として使用したいと考えています。スマートフォンではこれはうまく機能しますが、タブレットでは 1 回しか機能しません (つまり、最初に起動したときはコンテンツが正しく読み込まれますが、左側のリストの別の項目をクリックするとすぐにコンテンツが読み込まれなくなります)。 )。より正確に言うと、タブは読み込まれ、正しいラベルが付いていますが、タブのコンテンツ領域に表示されるはずのコンテンツがありませんが、コンテンツがそこにあるかのようにタブ間をスワイプすることはできます。
私の質問は次のとおりです。
- このアプローチは意味がありますか (マスター/詳細をタブと組み合わせる)? それとも、まったく別のアプローチを使用する必要がありますか?
- コンテンツが正しく読み込まれないという問題を解決する方法を知っていますか?
見やすくするために、 https://github.com/apacha/MasterDetail_And_Tabsからダウンロードできる、まさにこのアイデアでデモアプリをゼロから作成しました。
問題を修正しなかった Stackoverflow の関連記事: ViewPager PagerAdapter not updates the View、
Edit1 : http://developer.android.com/reference/android/support/v4/app/FragmentTabHost.htmlについて学び、 Android FragmentTabHostを見つけました - まだ完全に焼き付けられていませんか? . これらのヒントを使用して、ほぼ実行することができましたが、スワイプサポートを提供しない動作中のバージョンから選択できるようになりました (タブを直接 tabHost に追加した場合:
FragmentTabHost mTabHost = new FragmentTabHost();
// Add directly to tab-host
mTabHost.addTab(mTabHost.newTabSpec("simple1").setIndicator("Simple1"), CountingFragment.class, b);
追加してFragmentPagerAdapterを使用すると、バグのあるスワイプ実装の
FragmentTabHost mTabHost = new FragmentTabHost();
ViewPager mViewPager = (ViewPager) rootView.findViewById(R.id.pager);
TabsAdapter mTabsAdapter = new TabsAdapter(getActivity(), mTabHost, mViewPager);
// Add to tab-host-adapter
mTabsAdapter.addTab(mTabHost.newTabSpec("simple1").setIndicator("Simple1"), CountingFragment.class, b);
上記のリポジトリにすべての変更をコミットしました。