Android快速SDK(17)左右滑动菜单SlidingMenu【傻瓜模式】

代码:http://download.csdn.net/detail/huangbin95487710/9260337

依赖包模式

完整运行还需要用到以下依赖包

基于github中SlidingMenu库升级封装成傻瓜模式

  1. 新特性配置支持
    • 配置滑动方式
    • 配置左右视图%比
    • 配置背景颜色,透明度,渐变颜色
    • 配置滑动速度
    • 配置退出模式
    • 默认样式
    •     <!-- 默认样式 -->
          <style name="DivSlidingMenu">
              <item name="mode">left_right</item>
              <!-- 左视图的宽度百分比或千分比 -->
              <item name="leftWidth">70</item>
              <!-- 右边视图的宽度百分比或千分比 -->
              <item name="rightWidth">50</item>
              <!-- 滑出视图方式 -->
              <item name="touchModeAbove">none</item>
              <!-- 主视图方式 -->
              <item name="touchModeBehind">margin</item>
              <!-- 阴影的图片 -->
              <item name="shadowDrawable">@drawable/sliding_shadow</item>
              <!-- 右边阴影的图片 -->
              <item name="shadowRightDrawable">@android:color/transparent</item>
              <!-- 阴影宽度 -->
              <item name="shadowWidth">15dp</item>
              <!-- 渐变开启 -->
              <item name="fadeEnabled">true</item>
              <!-- 渐变深度 -->
              <item name="fadeDegree">0.35</item>
              <!-- 背景颜色 -->
              <item name="slidingbackground">@color/sliding_menu_frame_color</item>
              <!-- 返回按键退出 -->
              <item name="keyback_quit">true</item>
              <!-- 滑动速度 -->
              <item name="duration">400</item>
              <!-- false 平均页面,true 覆盖页面 -->
              <item name="enableslide">false</item>
          </style>

  2. 示例代码
    • 布局
    • <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/ll"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical"
          android:padding="15dip" >
      
          <Button
              android:id="@+id/btn_default"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_marginBottom="15dip"
              android:text="默认样式" />
      
          <Button
              android:id="@+id/index"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_marginBottom="15dip"
              android:text="下标选中" />
      
          <Button
              android:id="@+id/div"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_marginBottom="15dip"
              android:text="自定义样式" />
      
          <Button
              android:id="@+id/left"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_marginBottom="15dip"
              android:text="只有左边菜单" />
      
          <Button
              android:id="@+id/btn_null"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_marginBottom="15dip"
              android:text="没有左右菜单" />
      
          <Button
              android:id="@+id/right"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_marginBottom="15dip"
              android:text="只有右边菜单" />
      
      </LinearLayout>
    • 代码
    • 启动入口SlidingAllActivity.java
    • package cn.whonow.whonow.sliding;
      
      import android.app.Activity;
      import android.content.Context;
      import android.os.Bundle;
      import android.view.View;
      import android.view.View.OnClickListener;
      import android.widget.Button;
      import cn.whonow.whonow.R;
      
      /**
       * sliding菜单全集
       * 
       * @author HuangYi QQ:95487710
       */
      public class SlidingAllActivity extends Activity {
      
      	private Context mContext;
      
      	/** Called when the activity is first created. */
      	@Override
      	public void onCreate(Bundle savedInstanceState) {
      		super.onCreate(savedInstanceState);
      		setContentView(R.layout.test_sliding);
      		this.mContext = this;
      
      		Button button1 = (Button) findViewById(R.id.btn_default);
      		button1.setOnClickListener(new OnClickListener() {
      
      			@Override
      			public void onClick(View v) {
      				// 默认样式
      				SlidingActivity.startSliding(mContext, SlidingActivity.class);
      			}
      
      		});
      
      		Button button2 = (Button) findViewById(R.id.index);
      		button2.setOnClickListener(new OnClickListener() {
      
      			@Override
      			public void onClick(View v) {
      				// 下标选中
      				SlidingActivity
      						.startSliding(mContext, SlidingActivity.class, 2);
      			}
      
      		});
      
      		Button button3 = (Button) findViewById(R.id.div);
      		button3.setOnClickListener(new OnClickListener() {
      
      			@Override
      			public void onClick(View v) {
      				// 自定义样式
      				SlidingActivity.startSliding(mContext, SlidingActivity.class,
      						0, R.style.MyDivSlidingMenu);
      
      			}
      
      		});
      
      		Button button4 = (Button) findViewById(R.id.left);
      		button4.setOnClickListener(new OnClickListener() {
      
      			@Override
      			public void onClick(View v) {
      				// 只有左边菜单
      				SlidingActivity.startSliding(mContext, SlidingLeftActivity.class);
      			}
      
      		});
      
      		Button button5 = (Button) findViewById(R.id.btn_null);
      		button5.setOnClickListener(new OnClickListener() {
      
      			@Override
      			public void onClick(View v) {
      				// 没有左右菜单
      				SlidingActivity.startSliding(mContext, SlidingNullActivity.class);
      			}
      
      		});
      		
      		Button button6 = (Button) findViewById(R.id.right);
      		button6.setOnClickListener(new OnClickListener() {
      
      			@Override
      			public void onClick(View v) {
      				// 只有右菜单
      				SlidingActivity.startSliding(mContext, SlidingRightActivity.class);
      			}
      
      		});
      		
      
      	}
      
      }

    • 主视图SlidingActivity.java
    • package cn.whonow.whonow.sliding;
      
      import General.Listener.NavListener;
      import General.View.SlidingMenu.Act.FragmentBase;
      import General.View.SlidingMenu.Act.SlidingFragment;
      import General.View.SlidingMenu.Listener.SlidingTitleListener;
      import android.app.LocalActivityManager;
      import android.support.v4.app.Fragment;
      import cn.whonow.whonow.R;
      
      public class SlidingActivity extends SlidingFragment {
      
      	private InviteFragment mInviteFragment;
      
      	@Override
      	public FragmentBase getContentFragment(SlidingFragment context,
      			LocalActivityManager lam) {
      		// TODO Auto-generated method stub
      		if (mInviteFragment == null)
      			mInviteFragment = new InviteFragment();
      		return mInviteFragment;
      	}
      
      	@Override
      	public Fragment getLeftFragment(SlidingFragment context) {
      		// TODO Auto-generated method stub
      		return new LeftFragment(this);
      	}
      
      	@Override
      	public Fragment getRightFragment(SlidingFragment context) {
      		// TODO Auto-generated method stub
      		return new RightFragment(this);
      	}
      
      	public class InviteFragment extends FragmentBase {
      
      		public InviteFragment() {
      			super();
      		}
      
      		/**
      		 * 传入界面值
      		 */
      		@Override
      		public void initFuntion() {
      			super.setLayoutId(R.layout.test_tabpager_triangle);
      			// super.setNavId(FunctionButton.INDEX_INVITE);
      			// super.setTitleId(R.string.app_name);
      			super.setPagerDefault(mDefaultIndex);
      
      		}
      
      		/**
      		 * 数字初始化
      		 */
      		public void initValue() {
      
      			if (mFragmentItemList.size() > 0)
      				return;
      
      			TabPagerItem mPagerItem1 = new TabPagerItem("测试1");
      			TabPagerItem mPagerItem2 = new TabPagerItem("测试2");
      			TabPagerItem mPagerItem3 = new TabPagerItem("测试3");
      			mFragmentItemList.add(mPagerItem1);
      //			mFragmentItemList.add(mPagerItem2);
      //			mFragmentItemList.add(mPagerItem3);
      //			TabPagerItem mPagerItem4 = new TabPagerItem("测试4");
      //			TabPagerItem mPagerItem5 = new TabPagerItem("测试5");
      //			mFragmentItemList.add(mPagerItem4);
      //			mFragmentItemList.add(mPagerItem5);
      
      		}
      
      		@Override
      		public NavListener getNavListener() {
      			// TODO Auto-generated method stub
      			return null;
      		}
      
      		@Override
      		public SlidingTitleListener getSlidingTitleListener() {
      			// TODO Auto-generated method stub
      			return null;
      		}
      
      		@Override
      		public boolean isCheckLog() {
      			// TODO Auto-generated method stub
      			return true;
      		}
      	}
      
      	@Override
      	public boolean isCheckUpdate() {
      		// TODO Auto-generated method stub
      		return false;
      	}
      
      	@Override
      	public Class<?> getActName() {
      		// TODO Auto-generated method stub
      		return SlidingActivity.class;
      	}
      
      	@Override
      	public boolean isCheckLog() {
      		// TODO Auto-generated method stub
      		return false;
      	}
      
      }
      

    • 左边视图
    • package cn.whonow.whonow.sliding;
      
      import General.System.MyLog;
      import General.Umeng.Update.UmengFragmentPager;
      import General.View.SlidingMenu.Act.SlidingFragment;
      import android.content.Intent;
      import android.os.Bundle;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.ViewGroup;
      import android.view.View.OnClickListener;
      import cn.whonow.whonow.R;
      
      public class LeftFragment extends UmengFragmentPager {
      
      	public View mView;
      
      	public SlidingFragment context;
      
      	public LeftFragment(SlidingFragment context) {
      		this.context = context;
      	}
      
      	@Override
      	public View onCreateView(LayoutInflater inflater, ViewGroup container,
      			Bundle savedInstanceState) {
      
      		if (null == mView) {
      			mView = inflater.inflate(R.layout.test_tabpager_item, container,
      					false);
      			mView.setOnClickListener(new OnClickListener(){
      
      				@Override
      				public void onClick(View v) {
      					// TODO Auto-generated method stub
      					MyLog.show(context, "onClick");
      				}
      				
      			});
      		}
      		return mView;
      
      	}
      
      	public void onActivityCreated(Bundle savedInstanceState) {
      		super.onActivityCreated(savedInstanceState);
      
      	}
      
      	@Override
      	public String getPagerName() {
      		// TODO Auto-generated method stub
      		return null;
      	}
      
      	@Override
      	public boolean isCheckLog() {
      		// TODO Auto-generated method stub
      		return false;
      	}
      
      	@Override
      	public void onActivityResult(int requestCode, int resultCode, Intent data) {
      		// TODO Auto-generated method stub
      		
      	}
      
      }
      

    • 右边视图
    • package cn.whonow.whonow.sliding;
      
      import General.System.MyLog;
      import General.Umeng.Update.UmengFragmentPager;
      import General.View.SlidingMenu.Act.SlidingFragment;
      import android.content.Intent;
      import android.os.Bundle;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.View.OnClickListener;
      import android.view.ViewGroup;
      import cn.whonow.whonow.R;
      
      public class RightFragment extends UmengFragmentPager {
      
      	public View mView;
      
      	public SlidingFragment context;
      
      	public RightFragment(SlidingFragment context) {
      		this.context = context;
      	}
      
      	@Override
      	public View onCreateView(LayoutInflater inflater, ViewGroup container,
      			Bundle savedInstanceState) {
      
      		if (null == mView) {
      			mView = inflater.inflate(R.layout.test_tabpager_item, container,
      					false);
      			mView.setOnClickListener(new OnClickListener(){
      
      				@Override
      				public void onClick(View v) {
      					// TODO Auto-generated method stub
      					MyLog.show(context, "onClick");
      				}
      				
      			});
      		}
      		return mView;
      
      	}
      
      	public void onActivityCreated(Bundle savedInstanceState) {
      		super.onActivityCreated(savedInstanceState);
      
      	}
      
      	@Override
      	public String getPagerName() {
      		// TODO Auto-generated method stub
      		return null;
      	}
      
      	@Override
      	public boolean isCheckLog() {
      		// TODO Auto-generated method stub
      		return false;
      	}
      
      	@Override
      	public void onActivityResult(int requestCode, int resultCode, Intent data) {
      		// TODO Auto-generated method stub
      		
      	}
      
      }
      

  3. 效果图

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值