1、初始化slidemenu:
slidingmenu sm = getslidingmenu();
2、設定slidemenu陰影:
sm.setshadowwidthres(r.dimen.shadow_width);//陰影寬度
sm.setshadowdrawable(r.drawable.shadow);//陰影drawable
sm..setshadowdrawable(true)//是否有陰影
3、設定slidemenu來開後離邊框距離:
sm.setbehindoffsetres(r.dimen.slidingmenu_offset);//拉開後離邊框距離
4、設定漸變:
sm.setfadeenabled(true);/是否有漸變
sm.setfadedegree(0.35f);//設定漸變比率
5、設定slidemenu布局:
setbehindcontentview(r.layout.fr_slide_menu_right_frame);
getsupportfragmentmanager().begintransaction()
.replace(r.id.fr_slide_menu_right_frame, new addchannelfragment()).commit();
fragmenttransaction類主要用於管理fragment,有新增,替換,刪除等操作。尤其是begintransaction()與commit()方法與sql中的事務有點類似。
6、設定模式:
sm.setmode(slidingmenu.right);//選單右邊顯示
slidingmenu.left 選單左邊顯示;
slidingmenu.left_right選單兩側顯示。
注意:選單兩側顯示的時候,既然顯示兩個就應該設定兩個布局,需要設定第二個布局:
// 設定左右側都有
sm.setmode(slidingmenu.left_right);
// 此時要再次新增布局選單,上乙個為左側,這個為右側
sm.setsecondarymenu(r.layout.menu_frame_two);
getsupportfragmentmanager()
.begintransaction()
.replace(r.id.menu_frame_two,
new samplelistfragment()).commit();
sm.setsecondaryshadowdrawable(r.drawable.shadowright);
7、設定划動模式:
sm.settouchmodeabove(slidingmenu.touchmode_fullscreen);//全屏滑動
slidingmenu.settouchmodeabove().其中一共包含三中手勢模式:
touchmode_fullscreen 全屏模式,在正文布局中通過手勢也可以開啟slidingmenu
touchmode_margin 邊緣模式,在正文布局的邊緣處通過手勢可以找開slidingmenu
touchmode_none 自然是不能通過手勢開啟slidingmenu了
8、設定sldingmenu自動判斷當前是開啟還是關閉:
toggle();
9、設定縮放比例:
// 放縮比例
getslidingmenu().setbehindscrollscale((float)0.5);
工具類Semaphore的實現分析
說起semaphor分析,停車場的例子都給說爛了,現在以技師服務為例進行分析,希望能給大家帶來更深刻的理解。乙個團隊的技師資源是有限的,所以客人爆滿時要進行限制。對於有限的資源要進行限流 控制,高效的提高技師工作效率,這就是semaphore的應用場景。具體實現流程如下圖 semaphore基於ab...
List實現類效能和特點分析
面向介面程式設計 介面型別 變數 new 實現類 三者共同的特點 共同遵循的規範 1 允許元素重複.vector類 底層才有陣列結構演算法,方法都使用了synchronized修飾,執行緒安全,但是效能相對於arraylist較低.arraylist類 底層才有陣列結構演算法,方法沒有使用synch...
CountDownLatch類的分析
countdownlatch 實現 乙個或多個執行緒 等待 其他一組執行緒的操作執行完成。1 內部類 sync extends abstractqueuedsynchronizer 繼承了aqs,並實現了tryacquireshared,tryreleaseshared方法,同時擁有構造方法 syn...