SlidingMenu使用Demo
2015-12-05 14:26
459 查看
package com.study.slidingmenu; import android.os.Bundle; import android.view.Window; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity; import com.study.slidingmenu.fragment.BaseFragment; import com.study.slidingmenu.fragment.MenuFragment; public class MainActivity extends SlidingFragmentActivity { private SlidingMenu slidingMenu; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); // 设置左侧侧拉布局 setBehindContentView(R.layout.menu_frame); // 得到侧拉对应的对象 slidingMenu = getSlidingMenu(); // 设置侧拉宽度 slidingMenu.setBehindOffsetRes(R.dimen.sliding_offset); // 给左侧侧拉添加一个分割线 slidingMenu.setShadowDrawable(R.drawable.shadow); // 分割线宽度 slidingMenu.setShadowWidthRes(R.dimen.shadow_width); // 设置侧拉方向 slidingMenu.setMode(SlidingMenu.LEFT);// 默认左侧 // 侧拉栏目的拖拽范围--默认SlidingMenu.TOUCHMODE_MARGIN slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); // 将当前左侧侧拉栏目帧布局内部内容做替换操作 MenuFragment menuFragment = new MenuFragment(); getSupportFragmentManager() // 开启事务 .beginTransaction() // 需要替换帧布局id,需要替换的fragment,tag .replace(R.id.menu_frame, menuFragment, "MENU") // 提交 .commit(); } public void replaceFragement(BaseFragment fragment) { if (fragment != null) { getSupportFragmentManager().beginTransaction() .replace(R.id.content, fragment, "HOME").commit(); //点击过后收回 slidingMenu.toggle(); } } } package com.study.slidingmenu.fragment; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import com.study.slidingmenu.MainActivity; import com.study.slidingmenu.R; public class MenuFragment extends Fragment { private View view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } // 返回当前的fragment显示view,类似于activity的setContentView() @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.list_view, null); return view; } // 之前的onCreateView方法中的view对象做数据的填充操作 @Override public void onActivityCreated(Bundle savedInstanceState) { // 拿收据,服务器,请求网络 ListView lv = (ListView) view.findViewById(R.id.lv); lv.setAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, initData())); // listView点击事件 lv.setOnItemClickListener(new OnItemClickListener() { private BaseFragment fragment; @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { switch (position) { case 0: fragment = new Fragment1(); break; case 1: fragment = new Fragment2(); break; case 2: fragment = new Fragment3(); break; case 3: fragment = new Fragment4(); break; case 4: fragment = new Fragment5(); break; } // 替换内容页对应帧布局的内容 replaceFragment(fragment); } }); super.onActivityCreated(savedInstanceState); } protected void replaceFragment(BaseFragment fragment) { //获取MainActivity对象然后调方法替换内容页内容 if (getActivity() instanceof MainActivity) { //当前getActivity()这个方法获取的是MainActivity对应对象,或者是其之类 MainActivity activity = (MainActivity)getActivity(); activity.replaceFragement(fragment); } } private List<String> initData() { List<String> arrayList = new ArrayList<String>(); arrayList.add("Fragment1"); arrayList.add("Fragment2"); arrayList.add("Fragment3"); arrayList.add("Fragment4"); arrayList.add("Fragment5"); return arrayList; } } package com.study.slidingmenu.fragment; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class BaseFragment extends Fragment{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView tv = new TextView(getActivity()); tv.setText(this.getClass().getSimpleName()); return tv; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } }
相关文章推荐
- 智能聊天机器人的实现(语音引入第三方科大讯飞)
- DIV 拖动效果
- mongodb格式化输出查询结果
- JS检测浏览器插件
- Java 常用面试题
- nginx的编译安装
- JAVA语法基础之流程控制
- java.io.IOException: 您的主机中的软件中止了一个已建立的连接
- Vitamio打造万能播放器使用步骤
- linux内核中的GPIO系统之(2):pin control subsystem
- Android 判断字符串是否数字
- Android View.onMeasure方法的理解
- Linux串口终端驱动——S3C6410平台
- 在内存中创建原图的副本
- c010-删边问题
- Firemonkey使用iOS的第三方静态库(Link Binary With Libraries)
- opencv矩阵的卷积
- 在arraylist集合中方法的运用
- 蓝桥杯——基础练习答案
- ubuntu中使用virtualbox遇到Kernel driver not installed (rc=-1908)错误