官网:https://developer.android.com/training/implementing-navigation/nav-drawer.html

贴上主要的逻辑和布局文件:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>                  

这里需要注意一下:content主界面一定要定义在drawer的前面,另外,Android:layout_gravity="start"(从左往右)或者android:layout_gravity="end"(从右往左),这个属性是必须要定义的,不然出现下面的异常:

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();     //默认打开抽屉     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() {     //数组定义在xml 文件中     String[] items = getResources().getStringArray(R.array.left_drawer_items);     ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_expandable_list_item_1);     adapter.addAll(items);     mDrawerMenu.setAdapter(adapter);     mDrawerMenu.setSelection(0);     //设置点击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实现抽屉效果实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多相关文章

  1. android 自定义ratingbar 图片显示不全的解决方案
  2. SeekBar 和 RatingBar
  3. android中自定义控件
  4. 开机时自动启动Android应用
  5. EditText的hint位置和光标位置靠右
  6. Android(安卓)Launcher manifest解析
  7. SeekBar 和 RatingBar
  8. Android预定义样式
  9. android 自定义圆形的ImageView

随机推荐

  1. ViewDragHelper的简单分析(一)
  2. android 屏幕触摸事件及处理机制解读
  3. 如何快速启动android app
  4. android-exploitme(四):参数篡改
  5. android 下拉弹出框+地区选择三级联动
  6. Unity For Android iOS 的本地推送
  7. Android studio 中NDK的配置和JNI实现的
  8. Android网络框架选择(Volley、OkHttp、Ret
  9. Android Studio 2.2 Espresso Test Recor
  10. QQ的第三方登录