当前位置: 代码迷 >> Android >> SlidingMenu 左方菜单切换
  详细解决方案

SlidingMenu 左方菜单切换

热度:63   发布时间:2016-04-28 05:48:35.0
SlidingMenu 左侧菜单切换
各位大牛好,小弟最近在使用SlidingMenu,左侧菜单切换的时候每次都重新加载一个新的Fragement,这样写跳到另一个菜单在点回来是就有问题了,加载不出来数据
@SuppressLint("NewApi")
@Override
public void selectItem(int position, String title) {
// update the main content by replacing fragments  
    Fragment fragment = null;  
    switch (position) {  
    case 0:  
     fragment = new HomeFragment();  
        break;  
    case 1:  
        fragment = new ReportFragment();  
        break;  
    default: 
        break;  
    }  
    if (fragment != null) {  
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction()  
                .replace(R.id.menu_frame_content, fragment).commit();  
        // update selected item and title, then close the drawer  
        setTitle(title);
        mSlidingMenu.showContent();
    } else {  
        Log.e("MainActivity", "Error in creating fragment");  
    }  
}
,代码是这样的,我现在想实现类似网易的那种,当第一次点另一个菜单的时候加载新的fragement,以后再点的时候就不要加载了,直接显示之前加载的,不想每次点击就new 一个Fragement,望各位大神不吝赐教,先谢过了...
------解决方案--------------------
Fragment设置成为全局变量
------解决方案--------------------
解决了吗??
------解决方案--------------------
判断是否已经存在了 不存在的时候才new
------解决方案--------------------
ADT升级下,最新版本的自动生成fragment了,就不会有问题了,,,
------解决方案--------------------
当然如果你要用老版本,请看这段代码
if (savedInstanceState == null) {//== null的时候新建Fragment1
contentFragment = new Fragment1();
} else {//不等于null,直接get出来
//不等于null,找出之前保存的当前Activity显示的Fragment
contentFragment = getSupportFragmentManager().getFragment(savedInstanceState, "contentFragment");
}
//设置内容Fragment
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, contentFragment)
.commit();

------解决方案--------------------
将fragment存到变量中,先判断有没有这个fragment,如果有直接return,没有的话再new一个
------解决方案--------------------
把Fragment 放到一个List中,每次从List读取。比如TabHost它就是把TabSpec放到List中,借鉴下看行不哈:

private List<TabSpec> mTabSpecs = new ArrayList<TabSpec>(2);

------解决方案--------------------
引用:
Quote: 引用:

ADT升级下,最新版本的自动生成fragment了,就不会有问题了,,,
升级就可以了么,但是这个地方还是得用代码实现,代码还是要改的
恩,肯定要改代码的,只是说方便些,,,
------解决方案--------------------
关注