1

SlidingMenu: https://github.com/jfeinstein10/SlidingMenuを使用して Fragment 内に ViewPager を表示する一般的な方法を知りたいと思いました 。

2 つの例があります。最初の 1 つは、動作するメニュー (鳥の写真を変更する) を持つ ResponsiveUI の例ですが、それをどのように変更して異なる ViewPager を表示するかはわかりません。

もう 1 つの例は、ViewPager の例です。色間をスワイプする ViewPager を作成しますが、これには機能するスライド メニューはありません。

そうすることさえ可能ですか?

コンテンツを ViewPagerFragment に単純に置き換えようとしました

mContent = new ViewPagerFragment(); 
    getSupportFragmentManager()
    .beginTransaction()
    .replace(R.id.content_frame, mContent)
    .commit();    

しかし、私は次のエラーが発生します:

java.lang.IllegalStateException: Recursive entry to executePendingTransactions

完全な logcat はこちら: http://pastebin.com/aD2BSAja

4

1 に答える 1

0
public class MainActivity extends SlidingFragmentActivity {

    ViewPager mViewPager;
    FragmentPagerAdapter mPagerAdapter;
    protected ListFragment mFrag;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_pager_and_titles);

        // set the Behind View
        setBehindContentView(R.layout.menu_frame);
        FragmentTransaction t = this.getSupportFragmentManager()
                .beginTransaction();
        mFrag = new SampleListFragment();
        t.replace(R.id.menu_frame, mFrag);
        t.commit();

        // customize the SlidingMenu
        SlidingMenu sm = getSlidingMenu();
        sm.setShadowWidthRes(R.dimen.shadow_width);
        sm.setShadowDrawable(R.drawable.shadow);
        sm.setBehindOffsetRes(R.dimen.actionbar_home_width);
        setSlidingActionBarEnabled(true);

                //ViewPager adapter
        mPagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager());
        final ActionBar mActionBar = getSupportActionBar();
        mActionBar.setDisplayHomeAsUpEnabled(true);

        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mPagerAdapter);

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            toggle();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

}
于 2013-01-02T20:43:33.873 に答える