1

我想知道一般方法是如何在 SlidingMenu 的帮助下在 Fragment 中显示 ViewPager: https ://github.com/jfeinstein10/SlidingMenu

有两个示例,第一个是具有工作菜单的 ResponsiveUI 示例(它更改了鸟类的图片),但是,我不知道如何成功地将其更改为显示不同的 ViewPager。

另一个示例是 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 回答