Android开源项目SlidingMenu本学习笔记(两)

我们已经出台SlidingMenu使用:Android开源项目SlidingMenu本学习笔记(一个),接下来再深入学习下。依据滑出项的Menu切换到相应的页面

文件夹结构:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVuZzB6aGFvdGFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

点击Bluetooth能够切换到对应的界面

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGVuZzB6aGFvdGFp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

关键代码

MainActivity.java

package com.dzt.slidingmenudemo;

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.util.Log;

import com.dzt.slidingmenudemo.fragment.BluetoothFragment;
import com.dzt.slidingmenudemo.fragment.DisplayFragment;
import com.dzt.slidingmenudemo.fragment.HomeFragment;
import com.dzt.slidingmenudemo.fragment.MenuFragment;
import com.dzt.slidingmenudemo.fragment.WifiFragment;
import com.dzt.slidingmenudemo.fragment.MenuFragment.OnMenuListOnItemClickListener;
import com.slidingmenu.lib.SlidingMenu;
import com.slidingmenu.lib.app.SlidingActivity;

/**
 * 依据不同的Menu切换到对应的Fragment
 *
 * @author Administrator
 *
 */
public class MainActivity extends SlidingActivity implements
		OnMenuListOnItemClickListener {

	private SlidingMenu mChannelMenu;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		// 设置标题栏的标题
		setTitle("測试SlidingMenu");
		setContentView(R.layout.content_frame);
		initChannelMenu();
	}

	private void initChannelMenu() {

		setBehindContentView(R.layout.menu_frame);
		// 创建SlidingMenu对象
		mChannelMenu = getSlidingMenu();
		// 设置側滑栏菜单位置,这里在左边。拉动菜单时。会从左边弹出
		mChannelMenu.setMode(SlidingMenu.LEFT);
		// 设置触摸的范围,这里设置全屏
		mChannelMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
		// 设置阴影的宽度,查看上面第二张效果图,靠右边的位置,有一个阴影过渡。就是这个东西
		mChannelMenu.setShadowWidthRes(R.dimen.shadow_width);
		// 这里是阴影效果,能够设置图片或者一个颜色过渡
		mChannelMenu.setShadowDrawable(R.drawable.shadow);
		// 设置后面间距,側滑栏和原来界面间距
		mChannelMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
		// 边框的角度,这里指边界地方
		mChannelMenu.setFadeDegree(0.35f);
		// 设置触摸屏幕的模式
		mChannelMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
		// 设置SlidingMenu的内容
		FragmentTransaction fragmentTransaction = getFragmentManager()
				.beginTransaction();
		MenuFragment menuFragment = new MenuFragment();
		menuFragment.setOnMenuListOnItemClickListener(this);
		fragmentTransaction.replace(R.id.menu_frame, menuFragment);
		fragmentTransaction.replace(R.id.content_frame, new HomeFragment());
		fragmentTransaction.commit();
	}

	@Override
	public void onBackPressed() {
		if (mChannelMenu.isMenuShowing()) {
			// 隐藏SlidingMenu,这里的Content就是我们的主Activity
			mChannelMenu.showContent();
		} else {
			super.onBackPressed();
		}
	}

	@Override
	public void onSelectItem(int position, String title) {
		// TODO Auto-generated method stub
		System.out.println("onSelectItem title = " + title);
		Fragment fragment = null;
		switch (position) {
		case 0:
			fragment = new HomeFragment();
			break;
		case 1:
			fragment = new WifiFragment();
			break;
		case 2:
			fragment = new BluetoothFragment();
			break;
		case 3:
			fragment = new DisplayFragment();
			break;
		default:
			break;
		}

		if (fragment != null) {
			FragmentManager fragmentManager = getFragmentManager();
			fragmentManager.beginTransaction()
					.replace(R.id.content_frame, fragment).commit();
			// update selected item and title, then close the drawer
			setTitle(title);
			mChannelMenu.showContent();
		} else {
			// error in creating fragment
			Log.e("MainActivity", "Error in creating fragment");
		}
	}

}

滑出的Fragment MenuFragment.java

package com.dzt.slidingmenudemo.fragment;

import java.util.ArrayList;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

import com.dzt.slidingmenudemo.MenuListAdapter;
import com.dzt.slidingmenudemo.R;
import com.dzt.slidingmenudemo.domain.MenuItem;

public class MenuFragment extends Fragment implements OnItemClickListener {

	private ListView mLv;
	private String[] mMenuTitles;
	private ArrayList<MenuItem> mMenuItem;
	private MenuListAdapter mAdapter;
	private OnMenuListOnItemClickListener mListener;

	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View rootView = inflater.inflate(R.layout.menu_fragment, container,
				false);
		initWidgets(rootView);
		return rootView;
	}

	private void initWidgets(View rootView) {
		mLv = (ListView) rootView.findViewById(R.id.left_menu);
		mMenuTitles = getResources().getStringArray(R.array.menu_title);
		mMenuItem = new ArrayList<MenuItem>();
		for (int i = 0; i < mMenuTitles.length; i++) {
			MenuItem item = null;
			if (i == 2) {
				item = new MenuItem(mMenuTitles[i], R.drawable.ic_launcher,
						"18", true);
			} else if (i == 4) {
				item = new MenuItem(mMenuTitles[i], R.drawable.ic_launcher,
						"40", true);
			} else {
				item = new MenuItem(mMenuTitles[i], R.drawable.ic_launcher);
			}
			mMenuItem.add(item);
		}
		mAdapter = new MenuListAdapter(getActivity(), mMenuItem);
		mLv.setAdapter(mAdapter);
		mLv.setOnItemClickListener(this);
	}

	@Override
	public void onItemClick(AdapterView<?> parent, View view, int position,
			long id) {
		// TODO Auto-generated method stub
		mLv.setItemChecked(position, true);
		mLv.setSelection(position);
		if (mListener != null) {
			mListener.onSelectItem(position, mMenuTitles[position]);
		}
	}

	public void setOnMenuListOnItemClickListener(
			OnMenuListOnItemClickListener listener) {
		mListener = listener;
	}

	public interface OnMenuListOnItemClickListener {

		public void onSelectItem(int position, String title);
	}
}

点击Menu后。在MainActivity中实现了点击的监听器。就会切换到对应的页面

相关代码:http://download.csdn.net/detail/deng0zhaotai/7862727

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-12-21 05:18:22

Android开源项目SlidingMenu本学习笔记(两)的相关文章

Android开源项目SlidingMenu的学习笔记(二)

在前面已经介绍了SlidingMenu的用法:Android开源项目SlidingMenu的学习笔记(一),接下来再深入学习下,根据滑出项的Menu切换到对应的页面 目录结构: 点击Bluetooth可以切换到相应的界面 关键代码 MainActivity.java package com.dzt.slidingmenudemo; import android.app.Fragment; import android.app.FragmentManager; import android.app

Android开源项目SlidingMenu深入剖析

SlidingMenu简介: SlidingMenu的是一种比较新的设置界面或配置界面效果,在主界面左滑或者右滑出现设置界面,能方便的进行各种操作.目前有大量的应用都在使用这一效果.如Evernote.Google+.Foursquare等,国内的豌豆夹,人人,360手机助手等都使用SlidingMenu的界面方案. 项目下载地址:https://github.com/jfeinstein10/SlidingMenu注意: SlidingMenu依赖于另一个开源项目ActionBarSherlo

【Android UI设计与开发】第17期:滑动菜单栏(二)开源项目SlidingMenu的示例

通过上一篇文章的讲解,相信大家对于开源项目SlidingMenu都有了一个比较初步的了解(不了解的可以参考上 一篇文章),那么从这一章开始,博主将会以SlidingMenu为重心,给大家带来非常丰富的示例演示,让大家对 SlidingMenu有一个更加深入的了解以及如何去实现一些比较炫的滑动效果. 这篇文章会给大家带来7个不同效果的示例,每个示例都包含了最基本的使用方法,从易到难,循序渐进.能够 让初学者可以快速的掌握SlidingMenu的使用方法.下一篇文章会给大家带来三种不同的动画效果来实

【Android UI设计与开发】第16期:滑动菜单栏(一)开源项目SlidingMenu的使用

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9255829   由于最近的工作确实比较忙的原因,所以这个系列的教程有一段时间没有更新了,也请各位读者见谅.这期博主要给大家带来的是关于滑动菜单栏的实现效果. 一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了这种界面方案,像f

【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例

一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了这种界面方案,像facebook.人人网.everynote.Google+等等.如下图所示: 因为效果确实比较新颖,所以在很多的应用开发中去实现此效果,解决的办法也是不尽相同.诸多比较以后发 现,还是GitHub上的开源项目SlidingMenu提供了最佳的实现:定制灵活.各种阴影和渐变以及动画的

Android之开源控件ViewFLow学习笔记【含下载地址】--(原创-20150407)

Android开源控件ViewFlow学习 这里简单介绍一点:抛出IllegalStateException: "ViewFlow can only be used in EXACTLY mode." 首先要明确ViewFlow的好处所在:(1).ViewFlow比较适合动态大小,如图片的个数由后台决定,发多少就显示多少,这是用ViewPager就不是很合适. ( 2) ViewFlow的轮播滚动效果非常平滑,过渡非常友好,而且支持循环. 使用ViewFlow的时候,注意只能用在大小确

Android开源项目及库搜集

TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending,github搜索:https://github.com/search 目录 UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其它 动画 网络相关 响应式编程 地图 数据库 图像浏览及处理 视频音频处理 测试及调试 动态更新热更新 消息推送 完整项目 插件 出名框架 其他 好的文章 收集android上开源的酷炫的交互动画和视觉

59.Android开源项目及库 (转)

转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io#%E5%8D%AB%E6%98%9F%E8%8F%9C%E5%8D%95 目录 UI UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其它 动画 网络相关 响应式编程 地图 数据库 图像浏览及处理 视频音频处理 测试及调试 动态更新热更新 消息推送

优秀的 Android 开源项目

摘要  转载http://www.trinea.cn/android/android-open-source-projects-view/,方便大家找到自己合适的资料 目录[-] 一.ListView 二.ActionBar 三.Menu 四.ViewPager .Gallery 五.GridView 六.ImageView 七.ProgressBar 八.其他 GitHub上优秀Android开源项目 3. Android开发神器 1.Xabber客户端 2.oschina客户端 3.手机安全