這篇文章將為大家詳細(xì)講解有關(guān)怎么在Android中利用DrawerLayout實(shí)現(xiàn)一個(gè)雙向側(cè)滑菜單,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
成都創(chuàng)新互聯(lián)公司專注于康樂(lè)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供康樂(lè)營(yíng)銷型網(wǎng)站建設(shè),康樂(lè)網(wǎng)站制作、康樂(lè)網(wǎng)頁(yè)設(shè)計(jì)、康樂(lè)網(wǎng)站官網(wǎng)定制、重慶小程序開(kāi)發(fā)服務(wù),打造康樂(lè)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供康樂(lè)網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。布局文件的代碼:
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); } } }
??在布局文件中,第一個(gè)子控件是主布局,就是顯示在界面中央的位置,然后第二個(gè)和第三個(gè)控件作為左菜單和右菜單在兩側(cè)隱藏,然后滑動(dòng)的時(shí)候慢慢顯示出來(lái)。在第二和第三個(gè)控件的屬性設(shè)置里,需要注意的是android:layout_gravity屬性,這個(gè)屬性決定了菜單的位置是左還是右。當(dāng)設(shè)置成“start”的時(shí)候,菜單位于左側(cè),當(dāng)設(shè)置成“end”的時(shí)候,菜單位于右側(cè),所以菜單的位置和控件的順序沒(méi)有關(guān)系,只和屬性值有關(guān)。
??然后在MainActivity里面,我們得到DrawerLayout 對(duì)象,和兩個(gè)菜單對(duì)象,對(duì)按鈕添加點(diǎn)擊方法。拿左菜單來(lái)說(shuō),當(dāng)點(diǎn)擊按鈕的時(shí)候,如果左菜單是關(guān)閉的,那么我們就打開(kāi)菜單,如果菜單是打開(kāi)的,那么我們就關(guān)閉它。這就需要知道DrawerLayout的幾個(gè)常用方法了。
isDrawerOpen(View v)
該方法用來(lái)判斷菜單是否處于打開(kāi)狀態(tài),傳入的是一個(gè)View,表示菜單的View,也就是左菜單或者是右菜單。因?yàn)椴藛蔚臄?shù)量有一個(gè)或者以上,所以需要傳入不同的View來(lái)判斷是哪一個(gè)菜單。
closeDrawer(View v)
該方法用來(lái)關(guān)閉菜單,傳入的也是菜單的View
openDrawer(View v)
該方法用來(lái)打開(kāi)菜單,同關(guān)閉菜單的操作相似。
關(guān)于怎么在Android中利用DrawerLayout實(shí)現(xiàn)一個(gè)雙向側(cè)滑菜單就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。