最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android使用DrawerLayout實現(xiàn)雙向側滑菜單

 更新時間:2017年11月30日 11:24:05   作者:潘建成  
這篇文章主要為大家詳細介紹了Android使用DrawerLayout實現(xiàn)雙向側滑菜單,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言

  在android開發(fā)中,很多的app都有使用側滑菜單,有的是自定義控件來實現(xiàn)側滑菜單,但是android給我們提供了DrawerLayout類來實現(xiàn)側滑菜單,側滑效果很好,今天我就說說怎么去使用它來實現(xiàn)側滑菜單。

實現(xiàn)

  我們先來看一下效果圖:

這里我們實現(xiàn)的雙向側滑菜單,在界面上部加入了兩個按鈕,點擊就會打開菜單或者關閉菜單,當然也可以自己去滑動。

布局文件的代碼:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <RelativeLayout 
 android:layout_width="fill_parent"
 android:layout_height="45dp"
 android:background="#00ff00"
 >
 <Button 
 android:id="@+id/btn_toggle_left"
 android:layout_width="wrap_content"
 android:layout_height="50dp"
 android:text="左開關"
 />
 <Button 
 android:layout_alignParentRight="true"
 android:id="@+id/btn_toggle_right"
 android:layout_width="wrap_content"
 android:layout_height="50dp"
 android:text="右開關"
 />
 </RelativeLayout>
 <android.support.v4.widget.DrawerLayout
 android:id="@+id/drawerlayout"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <!-- 主布局,位于DrawerLayout的第一次子控件,位置不可以放錯 -->
 <FrameLayout 
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <ImageView 
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@drawable/mainbackground"
 />
 </FrameLayout>
 <!-- 左側菜單 -->
 <RelativeLayout
 android:id="@+id/layout_menu_left"
 android:layout_gravity="start" 
 android:layout_width="150dp"
 android:layout_height="fill_parent"
 android:background="#000"
 >
 <TextView
 android:textColor="#ffffff"
 android:gravity="center"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:text="左側菜單"
 />
 </RelativeLayout>
 <!-- 右側菜單 -->
 <RelativeLayout
 android:id="@+id/layout_menu_right"
 android:layout_gravity="end" 
 android:layout_width="150dp"
 android:layout_height="fill_parent"
 android:background="#000"
 >
 <TextView
 android:textColor="#ffffff"
 android:gravity="center"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:text="右側菜單"
 />
 </RelativeLayout>

 </android.support.v4.widget.DrawerLayout>
</LinearLayout>

MainActivity的代碼:

public class MainActivity extends Activity implements OnClickListener{

 private DrawerLayout mDrawerLayout;
 private View v_menu_left,v_menu_right;
 private Button btn_left,btn_right;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 initView();
 initListener();
 }

 private void initListener() {
 btn_left.setOnClickListener(this);
 btn_right.setOnClickListener(this);
 }

 private void initView() {
 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerlayout);
 v_menu_left = findViewById(R.id.layout_menu_left);
 v_menu_right = findViewById(R.id.layout_menu_right);
 btn_left = (Button) findViewById(R.id.btn_toggle_left);
 btn_right = (Button) findViewById(R.id.btn_toggle_right);
 }

 @Override
 public void onClick(View v) {
 if(v.getId()==R.id.btn_toggle_left){
 toggleLeft();
 }else if(v.getId()==R.id.btn_toggle_right){
 toggleRight();
 }
 }

 private void toggleRight() {
 if(mDrawerLayout.isDrawerOpen(v_menu_right)){
 mDrawerLayout.closeDrawer(v_menu_right);
 }else{
 mDrawerLayout.openDrawer(v_menu_right);
 }

 }

 private void toggleLeft() {
 if(mDrawerLayout.isDrawerOpen(v_menu_left)){
 mDrawerLayout.closeDrawer(v_menu_left);
 }else{
 mDrawerLayout.openDrawer(v_menu_left);
 }
 }

}

  在布局文件中,第一個子控件是主布局,就是顯示在界面中央的位置,然后第二個和第三個控件作為左菜單和右菜單在兩側隱藏,然后滑動的時候慢慢顯示出來。在第二和第三個控件的屬性設置里,需要注意的是android:layout_gravity屬性,這個屬性決定了菜單的位置是左還是右。當設置成“start”的時候,菜單位于左側,當設置成“end”的時候,菜單位于右側,所以菜單的位置和控件的順序沒有關系,只和屬性值有關。

  然后在MainActivity里面,我們得到DrawerLayout 對象,和兩個菜單對象,對按鈕添加點擊方法。拿左菜單來說,當點擊按鈕的時候,如果左菜單是關閉的,那么我們就打開菜單,如果菜單是打開的,那么我們就關閉它。這就需要知道DrawerLayout的幾個常用方法了。

isDrawerOpen(View v)

該方法用來判斷菜單是否處于打開狀態(tài),傳入的是一個View,表示菜單的View,也就是左菜單或者是右菜單。因為菜單的數(shù)量有一個或者以上,所以需要傳入不同的View來判斷是哪一個菜單。

closeDrawer(View v)

該方法用來關閉菜單,傳入的也是菜單的View

openDrawer(View v)

該方法用來打開菜單,同關閉菜單的操作相似。

  用這三個方法基本就可以實現(xiàn)上面的效果了,好了,簡單的雙向側滑菜單就完成了,不需要使用自定義的控件,自定義的控件可能有更加豐富的動畫效果,這就需要大家自己去是實現(xiàn)了。

源碼下載點這里。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Flutter 實現(xiàn)網易云音樂字幕的代碼

    Flutter 實現(xiàn)網易云音樂字幕的代碼

    這篇文章主要介紹了Flutter 實現(xiàn)網易云音樂字幕的代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Android自定義View繪制貝塞爾曲線的方法

    Android自定義View繪制貝塞爾曲線的方法

    這篇文章主要為大家詳細介紹了Android自定義View繪制貝塞爾曲線的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Android Fragment(動態(tài),靜態(tài))碎片詳解及總結

    Android Fragment(動態(tài),靜態(tài))碎片詳解及總結

    這篇文章主要介紹了Android Fragment詳解及總結的相關資料,這里對Android Fragment 動態(tài),靜態(tài)碎片進行了整理總結,需要的朋友可以參考下
    2016-12-12
  • Android編程實現(xiàn)懸浮窗獲取并顯示當前內存使用量的方法

    Android編程實現(xiàn)懸浮窗獲取并顯示當前內存使用量的方法

    這篇文章主要介紹了Android編程實現(xiàn)懸浮窗獲取并顯示當前內存使用量的方法,涉及Android針對窗口及內存的相關操作技巧,需要的朋友可以參考下
    2017-07-07
  • 基于Android實現(xiàn)轉盤按鈕代碼

    基于Android實現(xiàn)轉盤按鈕代碼

    這篇文章主要介紹了基于Android實現(xiàn)轉盤按鈕代碼的相關資料,需要的朋友可以參考下
    2015-12-12
  • Kotlin開發(fā)中與if等價的takeIf與takeUnless詳解

    Kotlin開發(fā)中與if等價的takeIf與takeUnless詳解

    這篇文章主要介紹了Kotlin開發(fā)中與if等價的takeIf與takeUnless使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • android實現(xiàn)彈出提示框

    android實現(xiàn)彈出提示框

    這篇文章主要為大家詳細介紹了android實現(xiàn)彈出提示框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • Android 一個日歷控件的實現(xiàn)代碼

    Android 一個日歷控件的實現(xiàn)代碼

    本篇文章主要介紹了Android 一個日歷控件的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • kotlin實現(xiàn)快遞與號碼歸屬地查詢案例詳解

    kotlin實現(xiàn)快遞與號碼歸屬地查詢案例詳解

    時間軸時一個很炫酷的效果,一般作用在物流信息上,我們同樣也可以作為一個學習對象去學習他的使用方法,同時呢,我們可以在線查詢我們的電話號碼歸屬地,巧用鍵盤的邏輯提升我們用戶體驗
    2023-02-02
  • Android中Gallery和ImageSwitcher的使用實例

    Android中Gallery和ImageSwitcher的使用實例

    今天小編就為大家分享一篇關于Android中Gallery和ImageSwitcher的使用實例,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

吴忠市| 民权县| 原阳县| 霍城县| 铜梁县| 武穴市| 嵊州市| 汪清县| 沁水县| 呼图壁县| 宝坻区| 大渡口区| 都江堰市| 余庆县| 商洛市| 福州市| 大关县| 万宁市| 肃宁县| 鲁甸县| 延川县| 花莲县| 历史| 九江县| 墨脱县| 阳西县| 罗甸县| 青川县| 桂东县| 大邑县| 大竹县| 深州市| 浏阳市| 三江| 孟连| 三亚市| 台安县| 双柏县| 洞头县| 丁青县| 左权县|