Android UI SlidingMenu侧滑菜单效果

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

Android UI-SlidingMenu侧滑菜单效果


 本篇博客给大家分享一个效果比较好的侧滑菜单的Demo,实现点击左边菜单切换Fragment。

 效果如下:

 

 


 

 主Activity代码:

package com.infzm.slidingmenu.demo;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.ImageView;import android.widget.TextView;import com.infzm.slidingmenu.demo.fragment.LeftFragment;import com.infzm.slidingmenu.demo.fragment.TodayFragment;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;/** * @date 2014/11/14 * @author wuwenjie * @description 主界面 */public class MainActivity extends SlidingFragmentActivity implements  OnClickListener private ImageView topButton; private Fragment mContent; private TextView topTextView; @Override public void onCreate(Bundle savedInstanceState) {  requestWindowFeature(Window.FEATURE_NO_TITLE); // 无标题  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  initSlidingMenu(savedInstanceState);  topButton = (ImageView) findViewById(R.id.topButton);  topButton.setOnClickListener(this);  topTextView = (TextView) findViewById(R.id.topTv); } /**  * 初始化侧边栏  */ private void initSlidingMenu(Bundle savedInstanceState) {  // 如果保存的状态不为空则得到之前保存的Fragment,否则实例化MyFragment  if (savedInstanceState != null) {   mContent = getSupportFragmentManager().getFragment(     savedInstanceState, "mContent");  }  if (mContent == null) {   mContent = new TodayFragment();  }  // 设置左侧滑动菜单  setBehindContentView(R.layout.menu_frame_left);  getSupportFragmentManager().beginTransaction()    .replace(R.id.menu_frame, new LeftFragment()).commit();  // 实例化滑动菜单对象  SlidingMenu sm = getSlidingMenu();  // 设置可以左右滑动的菜单  sm.setMode(SlidingMenu.LEFT);  // 设置滑动阴影的宽度  sm.setShadowWidthRes(R.dimen.shadow_width);  // 设置滑动菜单阴影的图像资源  sm.setShadowDrawable(null);  // 设置滑动菜单视图的宽度  sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);  // 设置渐入渐出效果的值  sm.setFadeDegree(0.35f);  // 设置触摸屏幕的模式,这里设置为全屏  sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);  // 设置下方视图的在滚动时的缩放比例  sm.setBehindScrollScale(0.0f); } @Override protected void onSaveInstanceState(Bundle outState) {  super.onSaveInstanceState(outState);  getSupportFragmentManager().putFragment(outState, "mContent", mContent); } /**  * 切换Fragment  *   * @param fragment  */ public void switchConent(Fragment fragment, String title) {  mContent = fragment;  getSupportFragmentManager().beginTransaction()    .replace(R.id.content_frame, fragment).commit();  getSlidingMenu().showContent();  topTextView.setText(title); } @Override public void onClick(View v) {  switch (v.getId()) {  case R.id.topButton:   toggle();   break;  default:   break;  } }}


侧边栏菜单Fragment

package com.infzm.slidingmenu.demo.fragment;import android.app.Activity;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import com.infzm.slidingmenu.demo.MainActivity;import com.infzm.slidingmenu.demo.R;/** * @date 2014/11/14 * @author wuwenjie * @description 侧边栏菜单 */public class LeftFragment extends Fragment implements OnClickListenerprivate View todayView; private View lastListView; private View discussView; private View favoritesView; private View commentsView; private View settingsView;   @Override public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState); }  @Override public void onAttach(Activity activity) {  super.onAttach(activity); }  @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,   Bundle savedInstanceState) {  View view = inflater.inflate(R.layout.layout_menu, null);  findViews(view);    return view; }   public void findViews(View view) {  todayView = view.findViewById(R.id.tvToday);  lastListView = view.findViewById(R.id.tvLastlist);  discussView = view.findViewById(R.id.tvDiscussMeeting);  favoritesView = view.findViewById(R.id.tvMyFavorites);  commentsView = view.findViewById(R.id.tvMyComments);  settingsView = view.findViewById(R.id.tvMySettings);    todayView.setOnClickListener(this);  lastListView.setOnClickListener(this);  discussView.setOnClickListener(this);  favoritesView.setOnClickListener(this);  commentsView.setOnClickListener(this);  settingsView.setOnClickListener(this); }  @Override public void onDestroyView() {  super.onDestroyView(); }  @Override public void onDestroy() {  super.onDestroy(); } @Override public void onClick(View v) {  Fragment newContent = null;  String title = null;  switch (v.getId()) {  case R.id.tvToday: // 今日   newContent = new TodayFragment();   title = getString(R.string.today);   break;  case R.id.tvLastlist:// 往期列表   newContent = new LastListFragment();   title = getString(R.string.lastList);   break;  case R.id.tvDiscussMeeting: // 讨论集会   newContent = new DiscussFragment();   title = getString(R.string.discussMeetting);   break;  case R.id.tvMyFavorites: // 我的收藏   newContent = new MyFavoritesFragment();   title = getString(R.string.myFavorities);   break;  case R.id.tvMyComments: // 我的评论   newContent = new MyCommentsFragment();   title = getString(R.string.myComments);   break;  case R.id.tvMySettings: // 设置   newContent = new MySettingsFragment();   title = getString(R.string.settings);   break;  default:   break;  }  if (newContent != null) {   switchFragment(newContent, title);  } }  /**  * 切换fragment  * @param fragment  */ private void switchFragment(Fragment fragment, String title) {  if (getActivity() == null) {   return;  }  if (getActivity() instanceof MainActivity) {   MainActivity fca = (MainActivity) getActivity();   fca.switchConent(fragment, title);  } } }

上面是核心代码,引入SlidingMenu开源库。

Demo下载地址:http://download.csdn.net/download/wwj_748/8184889


 

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值