iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android UI实现SlidingMenu侧滑菜单效果
  • 257
分享到

Android UI实现SlidingMenu侧滑菜单效果

菜单slidingmenuAndroid 2022-06-06 05:06:06 257人浏览 八月长安
摘要

本篇博客给大家分享一个效果比较好的侧滑菜单的Demo,实现点击左边菜单切换Fragment。 效果如下:   主Activity代码: package com

本篇博客给大家分享一个效果比较好的侧滑菜单的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; 
 
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); 
  } 
   
  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; 
 
public class LeftFragment extends Fragment implements OnClickListener{ 
  private 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); 
    } 
  } 
   
  private void switchFragment(Fragment fragment, String title) { 
    if (getActivity() == null) { 
      return; 
    } 
    if (getActivity() instanceof MainActivity) { 
      MainActivity fca = (MainActivity) getActivity(); 
      fca.switchConent(fragment, title); 
    } 
  } 
}

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

您可能感兴趣的文章:Android实现原生侧滑菜单的超简单方式Android滑动优化高仿QQ6.0侧滑菜单(滑动优化)android RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新上拉加载Android使用自定义控件HorizontalScrollView打造史上最简单的侧滑菜单Android使用DrawerLayout实现仿QQ双向侧滑菜单代码分析Android实现侧滑菜单Android开源组件SlidingMenu侧滑菜单使用介绍Android_UI 仿QQ侧滑菜单效果的实现Android侧滑菜单控件DrawerLayout使用详解Android自定义实现侧滑菜单效果


--结束END--

本文标题: Android UI实现SlidingMenu侧滑菜单效果

本文链接: https://www.lsjlt.com/news/22974.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android Drawerlayout实现侧滑菜单效果
    本文实例为大家分享了Drawerlayout侧滑菜单的具体代码,供大家参考,具体内容如下Drawerlayout的xml布局<?xml version="1.0" encoding="utf-8"?><Re...
    99+
    2023-05-30
    drawerlayout 侧滑菜单 roi
  • Android使用DrawerLayout实现侧滑菜单效果
    一、概述DrawerLayout是一个可以方便的实现Android侧滑菜单的组件,我最近开发的项目中也有一个侧滑菜单的功能,于是DrawerLayout就派上用场了。如果你从未使用过DrawerLayout,那么本篇博客将使用一个简单的案例...
    99+
    2023-05-30
    android drawerlayout 侧滑菜单
  • Android中DrawerLayout如何实现侧滑菜单效果
    这篇文章主要为大家展示了“Android中DrawerLayout如何实现侧滑菜单效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Android中DrawerLayout如何实现侧滑菜单效果”...
    99+
    2023-05-30
    drawerlayout android
  • android自定义左侧滑出菜单效果
    这里给大家提供一个类似QQ聊天那种可以左侧滑出菜单的自定义控件。希望对大家有帮助。参考了一些网友的做法,自己整理优化了一下,用法非常简单,就一个类,不需要自己写任何的代码,只要添加上...
    99+
    2024-04-02
  • Android实现左侧滑动菜单
    本文实例为大家分享了Android实现左侧滑动菜单的具体代码,供大家参考,具体内容如下 效果图: SlideActivity.java: package com.demo.slid...
    99+
    2024-04-02
  • android侧滑菜单怎么实现
    Android侧滑菜单可以通过以下几种方式实现:1. 使用DrawerLayout和NavigationView:DrawerLay...
    99+
    2023-08-18
    android
  • Android怎么实现侧滑抽屉菜单
    这篇文章将为大家详细讲解有关Android怎么实现侧滑抽屉菜单,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。侧滑抽屉菜单 前言正文一、创建项目二、添加滑动菜单三、UI美化四、添加导航视图五、菜单分类六、动...
    99+
    2023-06-14
  • Android自定义ViewGroup实现侧滑菜单
    目录前言一、常用的几种交互方式1.1 事件的拦截处理1.2 自行处理事件的几种方式1.3 子View的滚动与协调交互1.4 ViewGroup之间的嵌套与协调效果二、ViewDrag...
    99+
    2023-01-05
    Android ViewGroup侧滑菜单 Android ViewGroup菜单 Android ViewGroup Android 菜单
  • 如何使用android实现左右侧滑菜单效果的方法
    这篇文章主要介绍了如何使用android实现左右侧滑菜单效果的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在android开发中,左右侧滑菜单的开发已成为我们现在开发的...
    99+
    2023-05-30
    android
  • Android 侧滑抽屉菜单的实现代码
    目录前言正文一、创建项目二、添加滑动菜单三、UI美化四、添加导航视图五、菜单分类六、动态菜单七、源码运行效果图: 前言   滑动菜单相信都不会陌生,你可能见...
    99+
    2024-04-02
  • 怎么使用DrawerLayout和NavigationView实现侧滑菜单栏的效果
    小编给大家分享一下怎么使用DrawerLayout和NavigationView实现侧滑菜单栏的效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!效果如下:Layout布局<android.support.v4.wi...
    99+
    2023-05-30
    material design
  • Android studio实现菜单效果
    本文实例为大家分享了Android studio实现菜单效果的具体代码,供大家参考,具体内容如下 一、onCreateOptionsMenu() 首先在res目录下新建一个menu文...
    99+
    2024-04-02
  • android实现QQ微信侧滑删除效果
    最近由于项目需求,需要做一个listview中的item策划删除的效果,与是查找资料和参考了一些相关的博客,终于完美实现了策划删除的效果。先看一下效果图(研究了半天竟然没研究出来真机上gif图怎么做,大家将就看一下吧)。 &nbs...
    99+
    2023-05-30
  • ViewDragHelper实现QQ侧滑效果
    前言       侧滑的实现方式有很多方式来实现,这次总结的ViewDragHelper就是其中一种方式,ViewDragHelper是2013年谷歌I/O大会发布的新的控件,为了...
    99+
    2023-05-30
    viewdraghelper qq侧滑 he
  • jQuery实现下拉菜单滑动效果
    当我们制作网页时,有的时候会想拥有一个酷炫且顺滑的下拉菜单,虽然我们使用最基础的css和js也可以完成,但利用jQuery我们只需要非常简短的代码即可完成下面的效果 是不是非常的顺...
    99+
    2024-04-02
  • Flutter UI如何实现侧拉抽屉菜单
    小编给大家分享一下Flutter UI如何实现侧拉抽屉菜单,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在移动开发中,我们可以通过底部导航栏、标签页或是侧边抽屉菜单来实现导航。这是在小屏幕上可以充分利用空间。我们...
    99+
    2023-06-29
  • 在Android项目中使用View实现一个侧滑菜单
    在Android项目中使用View实现一个侧滑菜单?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、概述  在App中,经常会出现侧滑菜单,侧滑滑出View等效果,虽然说And...
    99+
    2023-05-31
    android view roi
  • Android侧滑菜单控件DrawerLayout使用详解
    DrawerLayout是Android V4包下一个带有侧滑功能的布局控件,可以根据手势展开与隐藏侧边栏,也可以随着侧边栏的点击改变主界面区的内容。并且只需要按照DrawerLayout规定的布局格式进行布局,即可实现左右侧滑效果。一、约...
    99+
    2023-05-30
  • Android中怎么通过自定义View 实现QQ侧滑菜单
    这期内容当中小编将会给大家带来有关Android中怎么通过自定义View 实现QQ侧滑菜单,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。布局代码<fierce_luk.com.sideslipvie...
    99+
    2023-05-30
    android view
  • Android怎么实现微信侧滑关闭页面效果
    这篇文章主要介绍了Android怎么实现微信侧滑关闭页面效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。原理在每个Activity里面都有一个底层的View,也就是所谓的r...
    99+
    2023-05-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作