2014-03-19 34 views
0

我已經正確導入jfeinstein的滑動菜單庫,除了一件事情以外,所有工作都正常。當我點擊滑動菜單中的「net」元素時,它會打開「net」片段,但它不會自動關閉菜單。自動關閉滑動菜單onChild點擊

SlidingMenu

public class SlidingMenuFragment extends Fragment implements ExpandableListView.OnChildClickListener { 
private SlidingMenu slidingMenu ; 
private ExpandableListView sectionListView; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    List<Section> sectionList = createMenu(); 

    View view = inflater.inflate(R.layout.slidingmenu_fragment, container, false); 
    this.sectionListView = (ExpandableListView) view.findViewById(R.id.slidingmenu_view); 
    this.sectionListView.setGroupIndicator(null); 
    SectionListAdapter sectionListAdapter = new SectionListAdapter(this.getActivity(), sectionList); 
    this.sectionListView.setAdapter(sectionListAdapter); 

    this.sectionListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 
      @Override 
      public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { 
      return true; 
      } 
     }); 

    this.sectionListView.setOnChildClickListener(this); 

    int count = sectionListAdapter.getGroupCount(); 
    for (int position = 0; position < count; position++) { 
     this.sectionListView.expandGroup(position); 
    } 

    return view; 
} 

private List<Section> createMenu() { 
    List<Section> sectionList = new ArrayList<Section>(); 

    Section oDemoSection = new Section("Demos"); 
    oDemoSection.addSectionItem(101,"Test", "lol"); 
    oDemoSection.addSectionItem(102, "Airport (AsyncTask)", "lol"); 

    Section oGeneralSection = new Section("General"); 
    oGeneralSection.addSectionItem(201, "Settings", "lol"); 
    oGeneralSection.addSectionItem(202, "Rate this app", "lol"); 
    oGeneralSection.addSectionItem(203, "Eula", "lol"); 
    oGeneralSection.addSectionItem(204, "Quit", "lol"); 

    sectionList.add(oDemoSection); 
    sectionList.add(oGeneralSection); 
    return sectionList; 
} 

@Override 
public boolean onChildClick(ExpandableListView parent, View v, 
     int groupPosition, int childPosition, long id) { 
    Fragment fragment=null; 

    switch ((int)id) { 

    case 101: 
     fragment = new Net(); 
     FragmentManager fragmentManager = getFragmentManager(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.frame_container, fragment).commit(); 

     break; 
    case 102: 
     //TODO 
     break; 
    case 201: 
     //TODO 
     break; 
    case 202: 
     //TODO 
     break; 
    case 203: 
     //TODO 
     break; 
    case 204: 
     //TODO 
     break; 
    } 

    return false; 
} 
} 

MainActivity

​​
+0

使用滑動菜單的切換 –

+0

請更具體。我試着slidingMenu.toggle();在.commit()之後;但它會導致應用程序崩潰。 – Hastalafiesta

+0

如何初始化滑動菜單以及如何訪問。你還沒有給出你如何初始化和使用的代碼。 –

回答

1

首先書寫MainActivity extends SlidingFragmentActivity。也更改您的MainActivity

> private SlidingMenu slidingMenu 

public static SlidingMenu slidingMenu 

現在你MainActivity裏面,你可以調用切換(),而不是this.slidingMenu.toggle(),只要你想使用它的片段裏面你可以這樣寫:

> MainActivity.slideMenu.toggle() 

當然你也可以用同樣的方法使用靜態SlidingMenu的其他方法。

+0

要關閉,首先檢查菜單是否顯示 if(slidingMenu.isMenuShowing()) slidingMenu.toggle(); –