您的位置:首页 > 其它

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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: