Android DrawerLayout實(shí)現(xiàn)抽屜效果實(shí)例代碼
官網(wǎng):https://developer.android.com/training/implementing-navigation/nav-drawer.html
貼上主要的邏輯和布局文件:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- content --> <FrameLayout android:id="@+id/drawer_container" android:layout_width="match_parent" android:layout_height="match_parent"/> <!-- Drawer--> <ListView android:id="@+id/drawer_menu" android:layout_width="240dp" android:layout_height="match_parent" android:background="#FFF0F0F0" android:layout_gravity="start"/> <!-- android:choiceMode 選中狀態(tài) 跟onItemClick沒有沖突 none 值為0,表示無選擇模式; singleChoice 值為1,表示最多可以有一項(xiàng)被選中; multipleChoice 值為2,表示可以多項(xiàng)被選中。 android:layout_gravity left或right left或start right或end 表示在抽屜里的效果是從左到右還是從右到左出現(xiàn) --> </android.support.v4.widget.DrawerLayout>
這里需要注意一下:content主界面一定要定義在drawer的前面,另外,Android:layout_gravity="start"(從左往右)或者android:layout_gravity="end"(從右往左),這個(gè)屬性是必須要定義的,不然出現(xiàn)下面的異常:
MainActivity.java
package com.jackie.drawerlayoutdemo; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private String mTitle; private DrawerLayout mDrawerLayout; private ListView mDrawerMenu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); //默認(rèn)打開抽屜 mDrawerLayout.openDrawer(mDrawerMenu); } private void initView() { mTitle = getResources().getString(R.string.app_name); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerMenu = (ListView) findViewById(R.id.drawer_menu); } private void initData() { //數(shù)組定義在xml 文件中 String[] items = getResources().getStringArray(R.array.left_drawer_items); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1); adapter.addAll(items); mDrawerMenu.setAdapter(adapter); mDrawerMenu.setSelection(0); //設(shè)置點(diǎn)擊item事件 mDrawerMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mTitle = ((TextView) view).getText().toString(); switchFragment(); mDrawerLayout.closeDrawer(mDrawerMenu); mDrawerMenu.setSelection(position); } }); } private void switchFragment() { getSupportFragmentManager().beginTransaction().replace(R.id.drawer_container, new ItemFragment(mTitle)).commit(); getSupportActionBar().setTitle(mTitle); } }
效果圖如下:
以上所述是小編給大家介紹的Android DrawerLayout實(shí)現(xiàn)抽屜效果實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android編程實(shí)現(xiàn)仿優(yōu)酷旋轉(zhuǎn)菜單效果(附demo源碼)
這篇文章主要介紹了Android編程實(shí)現(xiàn)仿優(yōu)酷旋轉(zhuǎn)菜單效果的方法,較為詳細(xì)的分析了Android實(shí)現(xiàn)旋轉(zhuǎn)菜單的布局與功能實(shí)現(xiàn)技巧,并附帶完整的demo源碼供讀者下載參考,需要的朋友可以參考下2015-12-12android 中win10 使用uwp控件實(shí)現(xiàn)進(jìn)度條Marquez效果
這篇文章主要介紹了android 中win10 使用uwp控件實(shí)現(xiàn)進(jìn)度條Marquez效果,需要的朋友可以參考下2017-06-06Android WebView通過動(dòng)態(tài)的修改js去攔截post請求參數(shù)實(shí)例
這篇文章主要介紹了Android WebView通過動(dòng)態(tài)的修改js去攔截post請求參數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android EditText追加空格、限制字符等方法示例
這篇文章主要給大家介紹了關(guān)于Android EditText追加空格、限制字符等的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Android嵌套R(shí)ecyclerView左右滑動(dòng)替代自定義view
這篇文章主要介紹了Android嵌套R(shí)ecyclerView左右滑動(dòng)替代自定義view,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-06-06Android后臺(tái)模擬點(diǎn)擊探索(附源碼)
這篇文章主要介紹了Android后臺(tái)模擬點(diǎn)擊探索(附源碼),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01Android項(xiàng)目仿UC瀏覽器和360手機(jī)衛(wèi)士消息常駐欄(通知欄)
本篇文章主要介紹了Android項(xiàng)目仿UC瀏覽器和360手機(jī)衛(wèi)士消息常駐欄(通知欄),可以仿照360的通知欄,有興趣的可以了解一下。2016-11-11Android實(shí)現(xiàn)沉浸式導(dǎo)航欄實(shí)例代碼
通過本文給大家分享android實(shí)現(xiàn)沉浸式導(dǎo)航欄實(shí)例代碼,代碼非常實(shí)用,需要的朋友可以參考下2016-05-05