1. 程式人生 > >(轉)Android SlidingMenu 使用詳解

(轉)Android SlidingMenu 使用詳解

很多APP都有側滑選單的功能,部分APP左右都是側滑選單~SlidingMenu 這個開源專案可以很好幫助我們實現側滑功能,如果對SlidingMenu 還不是很瞭解的童鞋,可以參考下本篇部落格。將側滑選單引入專案的方式很多中,本部落格先通過例子介紹各種引入方式,然後給大家展示個例項:主佈局ViewPager,左右各一個側滑選單的用法,差不多已經能滿足大部分應用的需求了。關於常用屬性,在文章末尾介紹。

1、在Activity中通過SlidingMenu構造方法,直接設定側滑選單
  1. package com.zhy.zhy_slidemenu_demo;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;  
  5. publicclass MainActivity extends Activity  
  6. {  
  7.     @Override
  8.     protectedvoid onCreate(Bundle savedInstanceState)  
  9.     {  
  10.         super.onCreate(savedInstanceState);  
  11.         setContentView(R.layout.activity_main);  
  12.         // configure the SlidingMenu
  13.         SlidingMenu menu = new SlidingMenu(this);  
  14.         menu.setMode(SlidingMenu.LEFT);  
  15.         // 設定觸控式螢幕幕的模式
  16.         menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);  
  17.         menu.setShadowWidthRes(R.dimen.shadow_width);  
  18.         menu.setShadowDrawable(R.drawable.shadow);  
  19.         // 設定滑動選單檢視的寬度
  20.         menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);  
  21.         // 設定漸入漸出效果的值
  22.         menu.setFadeDegree(0.35f);  
  23.         /** 
  24.          * SLIDING_WINDOW will include the Title/ActionBar in the content 
  25.          * section of the SlidingMenu, while SLIDING_CONTENT does not. 
  26.          */
  27.         menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);  
  28.         //為側滑選單設定佈局
  29.         menu.setMenu(R.layout.leftmenu);  
  30.     }  
  31. }  

效果圖:


是不是特別簡單~幾行程式碼搞定~哈~

2、通過把Activity繼承SlidingActivity 

a、繼承SlidingActivity

b、然後在onCreate中setBehindContentView(R.layout.leftmenu); 設定側滑選單的佈局

c、通過getSlidingMenu()得到SlidingMenu物件,然後設定樣式

  1. package com.zhy.zhy_slidemenu_demo02;  
  2. import android.os.Bundle;  
  3. import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;  
  4. import com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivity;  
  5. publicclass MainActivity extends SlidingActivity  
  6. {  
  7.     @Override
  8.     publicvoid onCreate(Bundle savedInstanceState)  
  9.     {  
  10.         super.onCreate(savedInstanceState);  
  11.         setContentView(R.layout.activity_main);  
  12.         setBehindContentView(R.layout.leftmenu);  
  13.         // configure the SlidingMenu
  14.         SlidingMenu menu = getSlidingMenu();  
  15.         menu.setMode(SlidingMenu.LEFT);  
  16.         // 設定觸控式螢幕幕的模式
  17.         menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);  
  18.         menu.setShadowWidthRes(R.dimen.shadow_width);  
  19.         menu.setShadowDrawable(R.drawable.shadow);  
  20.         // 設定滑動選單檢視的寬度
  21.         menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);  
  22.         // 設定漸入漸出效果的值
  23.         menu.setFadeDegree(0.35f);  
  24.         /** 
  25.          * SLIDING_WINDOW will include the Title/ActionBar in the content 
  26.          * section of the SlidingMenu, while SLIDING_CONTENT does not. 
  27.          */
  28.         // menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
  29.         // menu.setMenu(R.layout.leftmenu);
  30.     }  
  31. }  

效果圖和第一種方式一樣~是不是也很簡單~~
3、將SlidingMenu當作普通控制元件

可以把SlidingMenu作為普通的view,然後在佈局中宣告,喪心病狂的玩~下面看個例子:

  1. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:id="@+id/id_main_ly"
  4.     android:layout_width="match_parent"
  5.     android:layout_height="match_parent">
  6.     <LinearLayout
  7.         android:layout_width="wrap_content"
  8.         android:layout_height="wrap_content"
  9.         android:layout_marginLeft="30dp"
  10.         android:layout_marginTop="30dp">
  11.         <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
  12.             xmlns:sliding="http://schemas.android.com/apk/res-auto"
  13.             android:id="@+id/slidingmenulayout"
  14.             android:layout_width="120dp"
  15.             android:layout_height="170dp"
  16.             android:background="#ffffffff"
  17.             sliding:behindOffset="0dp"
  18.             sliding:behindScrollScale="1"
  19.             sliding:fadeDegree="0.3"
  20.             sliding:fadeEnabled="true"
  21.             sliding:touchModeAbove="fullscreen"
  22.             sliding:viewAbove="@layout/pic"/>
  23.     </LinearLayout>
  24. </RelativeLayout>

我們SlidingMenu作為普通View在佈局檔案中設定了佈局,並且設定了viewAbove的值為另一個佈局。

下面看pic佈局:

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <ImageViewxmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="120dp"
  4.     android:layout_height="170dp"
  5.     android:src="@drawable/zhy"/>

就是一張妹子圖片。

最後看主Activity:

  1. package com.zhy.zhy_slidemenu_demo03;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.view.View.OnClickListener;  
  6. import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;  
  7. publicclass MainActivity extends Activity  
  8. {  
  9.     private SlidingMenu mLeftMenu;  
  10. 相關推薦

    ()Android SlidingMenu 使用

    很多APP都有側滑選單的功能,部分APP左右都是側滑選單~SlidingMenu 這個開源專案可以很好幫助我們實現側滑功能,如果對SlidingMenu 還不是很瞭解的童鞋,可以參考下本篇部落格。將側滑選單引入專案的方式很多中,本部落格先通過例子介紹各種引入方式,然後給大家展示個例項:主佈局ViewPag

    ()最全面的Android Webview

    原地址:http://blog.csdn.net/carson_ho/article/details/52693322 前言 現在很多App裡都內建了Web網頁(Hyprid App),比如說很多電商平臺,淘寶、京東、聚划算等等,如下圖  那麼這種該如何實現呢

    Android--Uri實際路徑

    通過Uri得到實際路徑,網上方法有很多,但我前幾天試了一下,發現返回的值都是null,後來才發現,Uri的格式在Android4.4之後有了很大的改動。 content://media/extenral/images/media/17766(4.4前)

    ()js prototype

    不同 腳本語言 ava type 部分 load 錯誤 並且 per 轉載自:http://blog.csdn.net/chaojie2009/article/details/6719353 (也是轉載的。鄙視一下此人轉載不著名出處。) 註意:必須帶著懷疑的態度去看這篇文章

    ()cut命令

    控制 分屏顯示 ctrl+ 分隔符 comm 參數 分享圖片 合並 字節 cut 文件內容查看 顯示行中的指定部分,刪除文件中指定字段 顯示文件的內容,類似於下的type命令。 說明 該命令有兩項功能,其一是用來顯示文件的內容,它依次讀取由參數file所指明的文

    []Nginx配置

    fast forward type 時間 去除 負載 所有 hash dex Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點設計開發的。從2004年發布至今,憑借開源的力量,已經接近成熟與完善。 Nginx功能豐富,可作為HTTP服務器,也可

    ()Linux命令-file

    版本信息 ref 獲取文件 linux命令 過程 嘗試 file img 文件類型 Linux命令詳解-file 原文:https://www.cnblogs.com/Dodge/p/4278306.html file命令用來識別文件類型,也可用來辨別一些文件的編碼格

    ()RTSP協議

    定義 attach highlight not xtend prev desc 設備 代理服 轉自:https://www.cnblogs.com/lidabo/p/6553212.html RTSP簡介 RTSP(Real Time Streaming Prot

    android -------- WIFI

    mov 取ip地址 fico alt b- else if 無線網 pan PC 今天簡單的來聊一下安卓開發中的Wifi,一些常用的基礎,主要分為兩部分: 1:WiFi的信息 2:WiFi的搜索和連接 現在app大多都需要從網絡上獲得數據。所以訪問網絡是在

    】Vue-設置路由導航的兩種方法: <router-link :to="..."> 和router.push(...)

    name app query outer 參數 size 命名 字符 適用於 一、<router-link :to="...">  to裏的值可以是一個字符串路徑,或者一個描述地址的對象。例如: // 字符串 <router-link to="apple

    [] xargs命令,xargs與管道的區別

    ddd 接受 設計 pad display sof report 程序 at命令 [From] https://www.cnblogs.com/wangqiguo/p/6464234.html 閱讀目錄 為什麽要用xargs,問題的來源 xargs是什麽,與管道有什

    Node.js中的不安全跳如何防禦

    else 一個 home url參數 社交 ref function 論壇 googl Node.js中的不安全跳轉如何防禦詳解 導語: 早年在瀏覽器大戰期間,有遠見的Chrome認為要運行現代Web應用,瀏覽器必須有一個性能非常強勁的Java引擎,於是Google自己開發

    Android Permission

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    Android ViewModel

    1. ViewModel概述 2. 實現一個ViewModel 3. ViewModel的生命週期 4. 在fragments之間共享資料 5. ViewModel替換Loaders 6. 附加資源 1.

    Android LiveData

    官方文件翻譯 1.LiveData概述 1.1 使用LiveData的優點 1.2 使用LiveData物件 1.2.1 建立LiveData物件 1.2.2 觀察LiveData物件

    Android Lifecycle(一)

    官方文件翻譯 使用生命週期感知元件處理生命週期 Lifecycle Event State LifecycleOwner 實現一個自定義的LifecycleOwner 生命週期感

    Android Animation

    關於動畫的實現,Android提供了Animation,在Android SDK介紹了2種Animation模式: 1. Tween Animation:通過對場景裡的物件不斷做影象變換(平移、縮放、旋轉)產生動畫效果,即是一種漸變動畫; 2. Frame Animation:

    Android開發之onTouch和onClick

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    Android UI之顏色資源的使用

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    --BigDecimal用法

    </div> </div> </div> <article> <div id="article_content" class="article_content clearfix csdn-tracking-stat