带有 SlidingMenu 的片段中的 ViewPager

Posted

技术标签:

【中文标题】带有 SlidingMenu 的片段中的 ViewPager【英文标题】:ViewPager in Fragment with SlidingMenu 【发布时间】:2012-12-09 21:29:32 【问题描述】:

我想知道一般方法是如何在 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

【问题讨论】:

你能解决你的问题吗? 【参考方案1】:
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);
    


【讨论】:

以上是关于带有 SlidingMenu 的片段中的 ViewPager的主要内容,如果未能解决你的问题,请参考以下文章

无法更新 View Pager 中的中间片段。

利用开源SlidingMenu框架实现左右侧滑菜单的功能

启动带有地址的片段地图进行搜索

SlidingMenu 和三星在弹出视图中打开(指定的孩子已经有父母。例外)

片段类中的 View.findViewById

Android中的slidingmenu