读书人

2013.12.04 (五) android Sli

发布时间: 2013-12-10 15:05:55 作者: rapoo

2013.12.04 (5)——— android SlidingMenu之FragmentChangeActivity
2013.12.04 (5)——— android SlidingMenu之FragmentChangeActivity

package com.jeremyfeinstein.slidingmenu.example.fragments;import android.os.Bundle;import android.support.v4.app.Fragment;import com.jeremyfeinstein.slidingmenu.example.BaseActivity;import com.jeremyfeinstein.slidingmenu.example.R;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;public class FragmentChangeActivity extends BaseActivity {private Fragment mContent;public FragmentChangeActivity() {super(R.string.changing_fragments);}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// set the Above Viewif (savedInstanceState != null)mContent = getSupportFragmentManager().getFragment(savedInstanceState, "mContent");if (mContent == null)mContent = new ColorFragment(R.color.red);// set the Above ViewsetContentView(R.layout.content_frame);getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, mContent).commit();// set the Behind ViewsetBehindContentView(R.layout.menu_frame);getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame, new ColorMenuFragment()).commit();// customize the SlidingMenugetSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);}@Overridepublic void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);getSupportFragmentManager().putFragment(outState, "mContent", mContent);}public void switchContent(Fragment fragment) {mContent = fragment;getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();getSlidingMenu().showContent();}}


package com.jeremyfeinstein.slidingmenu.example.fragments;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.ListFragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ListView;import com.jeremyfeinstein.slidingmenu.example.R;public class ColorMenuFragment extends ListFragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {return inflater.inflate(R.layout.list, null);}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);String[] colors = getResources().getStringArray(R.array.color_names);ArrayAdapter<String> colorAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, colors);setListAdapter(colorAdapter);}@Overridepublic void onListItemClick(ListView lv, View v, int position, long id) {Fragment newContent = null;switch (position) {case 0:newContent = new ColorFragment(R.color.red);break;case 1:newContent = new ColorFragment(R.color.green);break;case 2:newContent = new ColorFragment(R.color.blue);break;case 3:newContent = new ColorFragment(android.R.color.white);break;case 4:newContent = new ColorFragment(android.R.color.black);break;}if (newContent != null)switchFragment(newContent);}// the meat of switching the above fragmentprivate void switchFragment(Fragment fragment) {if (getActivity() == null)return;if (getActivity() instanceof FragmentChangeActivity) {FragmentChangeActivity fca = (FragmentChangeActivity) getActivity();fca.switchContent(fragment);} else if (getActivity() instanceof ResponsiveUIActivity) {ResponsiveUIActivity ra = (ResponsiveUIActivity) getActivity();ra.switchContent(fragment);}}}



这个例子主要介绍了,如何实现主界面fragmen的切换

1、在侧边栏的Fragment里面

private void switchFragment(Fragment fragment) {if (getActivity() == null)return;if (getActivity() instanceof FragmentChangeActivity) {FragmentChangeActivity fca = (FragmentChangeActivity) getActivity();fca.switchContent(fragment);} else if (getActivity() instanceof ResponsiveUIActivity) {ResponsiveUIActivity ra = (ResponsiveUIActivity) getActivity();ra.switchContent(fragment);}}


调用上层activity的switchContent方法

public void switchContent(Fragment fragment) {mContent = fragment;getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();getSlidingMenu().showContent();}


读书人网 >Android

热点推荐