Android UI(三)SlidingMenu實現滑動菜單(詳細 官方)

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   ar   color   os   sp   

Jeff Lee blog:   http://www.cnblogs.com/Alandre/  (泥沙磚瓦漿木匠),retain the url when reproduced ! Thanks



求資源到首頁上部加群即可。

一. SlidingMenu簡介

github:https://github.com/jfeinstein10/SlidingMenu

官網上面的簡介上翻譯的:

SlidingMenu是能讓開發人員很容易的開發有滑動菜單App(像Google+,YouTube,Facebook)的開源android庫。只要引入這個開源庫的許可代碼,就可以很容易免費的用在你想要滑動菜單的app。如所示:
                                                                                                  

 

二.官方小例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public class SlidingExample extends Activity {       @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setTitle(R.string.attach);         // set the content view         setContentView(R.layout.content);         // configure the SlidingMenu         SlidingMenu menu = new SlidingMenu(this);         menu.setMode(SlidingMenu.LEFT);         menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);         menu.setShadowWidthRes(R.dimen.shadow_width);         menu.setShadowDrawable(R.drawable.shadow);         menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);         menu.setFadeDegree(0.35f);         menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);         menu.setMenu(R.layout.menu);     }   }

 

自然你也可以用xml定義一個slidingMenu

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu     xmlns:sliding=" http://schemas.android.com/apk/res-auto"     android:id="@+id/slidingmenulayout"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     sliding:viewAbove="@layout/YOUR_ABOVE_VIEW"     sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND"     sliding:touchModeAbove="margin|fullscreen"     sliding:behindOffset="@dimen/YOUR_OFFSET"     sliding:behindWidth="@dimen/YOUR_WIDTH"     sliding:behindScrollScale="@dimen/YOUR_SCALE"     sliding:shadowDrawable="@drawable/YOUR_SHADOW"     sliding:shadowWidth="@dimen/YOUR_SHADOW_WIDTH"     sliding:fadeEnabled="true|false"     sliding:fadeDegree="float"     sliding:selectorEnabled="true|false"     sliding:selectorDrawable="@drawable/YOUR_SELECTOR"/>

 

官方文檔翻譯如下:

  • viewAbove - 在菜單之上的布局引用
  • viewBehind - 在菜單之下的布局引用
  • touchModeAbove - 指那一部分螢幕觸摸後視圖顯示
  • behindOffset - 菜單顯示時,主體顯示多少(單位像素)
  • behindWidth - 菜單顯示,主體顯示的寬。預設全屏
  • behindScrollScale - 菜單顯示的滾動設定
  • shadowDrawable - 滾動陰影設定
  • shadowWidth - 滾動陰影的寬度
  • fadeEnabled - 滑動時菜單的是否漸層
  • fadeDegree - 滑動時的漸層程度

 

三.實現滑動菜單

主要結構:MainAct為主入口,然後各個fragment實現各自內容動作。

MainAct.java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 public class MainAct extends FragmentActivity {     private SlidingMenu menu;           @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.slidingmenu_main);                   menu = new SlidingMenu(this);         menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);         menu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);         menu.setShadowDrawable(R.drawable.slidingmenu_shadow);         menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);         DisplayMetrics dm = new DisplayMetrics();         getWindowManager().getDefaultDisplay().getMetrics(dm);         menu.setFadeDegree(0.35f);         menu.setBehindOffset(dm.widthPixels*50/100);         menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);                             menu.setMode(SlidingMenu.LEFT_RIGHT);//這裡模式設定為左右都有菜單,RIGHT顯示右菜單,LEFT顯示左菜單,LEFT_RIGH顯示左右菜單         menu.setContent(R.layout.slidingmenu_content);         menu.setMenu(R.layout.slidingmenu_menu);                   menu.setSecondaryMenu(R.layout.slidingmenu_menu_2);         menu.setSecondaryShadowDrawable(R.drawable.slidingmenu_shadow_2);                   getSupportFragmentManager()             .beginTransaction()             .replace(R.id.slidingmenu_content, new MainFragment(menu))             .commit();//設定首頁面內容                   getSupportFragmentManager()             .beginTransaction()             .replace(R.id.slidingmenu_menu, new MainLeftFragment())             .commit();//設定左菜單內容                   getSupportFragmentManager()             .beginTransaction()             .replace(R.id.slidingmenu_menu_2, new MainRightFragment(menu))             .commit();//設定右菜單內容              } }

 

總結:用則簡單則難

Android UI(三)SlidingMenu實現滑動菜單(詳細 官方)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.