博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集成Android SlidingMenu(SlideMenu)
阅读量:6954 次
发布时间:2019-06-27

本文共 2645 字,大约阅读时间需要 8 分钟。



左右效果图如下:

左边

右边

Android SlidingMenu(SlideMenu)是一个开源项目框架。在git上的下载地址:

现在基于Fragment给出一个简单的左边+右边的SlidingMenu(SlideMenu) 。首先要引入第三方库,这不比多说,现到git上把最新的项目代码下载到本地然后导入到工程中,接下来就是导入和写自己的代码。

主Activity:

package zhangphil.slidingmenu;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.view.Gravity;import android.view.KeyEvent;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class MainActivity extends FragmentActivity {	private SlidingMenu menu;	// id用于区分左边还是右边的侧边滑menu	private final static String ID = "id";	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		menu = new SlidingMenu(this);		// 左边和右边均有		menu.setMode(SlidingMenu.LEFT_RIGHT);		menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);		// 左边		menu.setMenu(R.layout.left_menu);		// 右边		menu.setSecondaryMenu(R.layout.right_menu);		Fragment leftFragment = TestFragment.newInstance("左边");		Fragment rightFragment = TestFragment.newInstance("右边");		FragmentManager fm = getSupportFragmentManager();		FragmentTransaction ft = fm.beginTransaction();		ft.replace(R.id.left, leftFragment);		ft.commit();		// 必须重新再次获得一个FragmentTransaction。否则报错。		ft = fm.beginTransaction();		ft.replace(R.id.right, rightFragment);		ft.commit();	}	@Override	public boolean onKeyDown(int keyCode, KeyEvent event) {		// 按下BACK + 没有重复		if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {			// 用户按返回键后,切换SlideMenu <-->主界面。			menu.toggle(true);			return true;		}		return super.onKeyDown(keyCode, event);	}	//	// 仅仅用于生成测试的Fragment。	//	public static class TestFragment extends Fragment {		public static Fragment newInstance(String id) {			Fragment fragment = new TestFragment();			Bundle bundle = new Bundle();			bundle.putString(ID, id);			fragment.setArguments(bundle);			return fragment;		}		@Override		public View onCreateView(LayoutInflater inflater, ViewGroup container,				Bundle savedInstanceState) {			// 仅仅显示一个TextView。			TextView tv = new TextView(getActivity());			tv.setTextColor(Color.BLACK);			tv.setText(this.getArguments().getString(ID) + "");			tv.setTextSize(60.0f);			tv.setGravity(Gravity.CENTER);			return tv;		}	}}

重写了onKeyDown,为了捕捉用户按击返回键的事件,以便切换。

activity_main.xml:

left_menu.xml

right_menu.xml

你可能感兴趣的文章
varchar nvarchar char nchar varchar2 nvarchar2
查看>>
js 百度地图 添加自定义控件
查看>>
AI考拉技术分享会--IDE 常用功能 for Node.js
查看>>
Tomcat session Error
查看>>
HAProxy双机高可用方案之HAProxy+Keepalived
查看>>
mysql忘记密码解决方法
查看>>
Eclipse安装m2eclipse插件(Maven)
查看>>
windows 下最快搭建svn服务器方法
查看>>
获取android系统外置存储卡路径的方法
查看>>
mysql 链接错误
查看>>
php 数组字符串搜索array_search技巧
查看>>
hive中的NULL
查看>>
进程死锁(银行家算法)
查看>>
FragmentTransaction add 和 replace 完全解析
查看>>
1. ASIHttpRequest-创建和执行request
查看>>
mysql中某张表修改较大时的处理
查看>>
如何退出telnet界面
查看>>
nginx+多个tomcat配置
查看>>
sublime实用插件-持续更新
查看>>
DotImage使用教程:从数据库中读写图像
查看>>