博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 抽屉式滑动demo
阅读量:4913 次
发布时间:2019-06-11

本文共 1910 字,大约阅读时间需要 6 分钟。

下载地址:https://github.com/asijack/AndroidDrawerDemo

直接上效果图如下:

是不是还不错的样子。

先看看布局文件吧

需要注意一下几点:

1、主要内容的视图(TextView)必须是DrawLayout的第一个子元素, 因为导航抽屉是在主要内容视图的上面.
2、主要内容视图设置为匹配父视图的宽度和高度, 因为它代表了整个界面导航抽屉是隐藏的.
3、抽屉视图(ListView)必须指定其水平重力与android:layout_gravity属性。
支持从右到左(RTL)语言,指定值与 "start" 代替 "left"(所以抽屉里出现在布局的右侧当布局是RTL时).
4、抽屉视图指定其宽度用dp单位和高度匹配父视图。抽屉里的宽度不能超过320 dp, 所以用户总是可以看到主要内容视图的一部分.

 

在来看看代码,代码算是比较容易看懂的。下面讲一下需要注意的几个地方

1、onOptionsItemSelected

//当一个可标记项目被选中时,系统将调用特定的项目选择方法比如 :onOptionsItemSelected    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if (item.getItemId() == android.R.id.home) {            if (mDrawerLayout.isDrawerOpen(mDrawerList)) {                mDrawerLayout.closeDrawer(mDrawerList);            } else {                mDrawerLayout.openDrawer(mDrawerList);            }        }        return super.onOptionsItemSelected(item);    }

当抽屉被打开或者说被选中时会调用这个方法。

 

2、OnPostCreate

//如果Activity实例是第一次启动,则不调用,以后的每次重新启动都会调用    @Override    protected void onPostCreate(Bundle savedInstanceState) {        super.onPostCreate(savedInstanceState);        mDrawerToggle.syncState();    }

这个方法用的用的还是比较少的。官方的解释是:

"Called when activity start-up is complete (after onStart() and onRestoreInstanceState(Bundle) have been called).

"就是说,当Activity彻底运行起来后回调onPostCreate方法

通常我们所熟知的activity的生命周期如下:

其实详细一点的生面周期如下

onCreate onStart onPost onCreate onResume onPostResume

跳转下一个activity  onPause onStop

 毕竟这里不是详细讲生命周期

还有跟多的Activity生命期状态相关的回调函数还有这个onNewIntent也是比较少见的,

 

关于这个方法onPostCreate

可以用在获取当前Activity窗口view的宽高是一个比较好的选择

 

言归正传本demo需要注意的第三点

3、onConfigurationChanged

我们知道在改变屏幕方向、弹出软件盘和隐藏软键盘等类似操作时,如果没有设置AndroidManifest.xml 程序是会再次执行onCreate方法的。在AndroidManifest.xml 里面设置了android:onConfigurationChanged属性后就不会再次执行onCreate方法,而会执行 onConfigurationChanged这个方法

而且首行必须是super.onConfigurationChanged(xx);

 

转载于:https://www.cnblogs.com/Free-Thinker/p/4313920.html

你可能感兴趣的文章
6、Linux 基础(二)
查看>>
Letter Combinations of a Phone Number
查看>>
C#动态操作DataTable(新增行、列、查询行、列等)
查看>>
Slim 微型框架的使用
查看>>
高程5.4 RegExp类型
查看>>
CMD复制文件夹
查看>>
尽力而为
查看>>
Java技术预备作业
查看>>
阿虎烧烤的新感悟-O2O你真的会玩吗?
查看>>
Oracle10g闪回恢复区详细解析(转载)
查看>>
手把手教你从零认识webpack4.0
查看>>
(译)加入敌人和战斗:如果使用cocos2d制作基于tiled地图的游戏:第三部分
查看>>
[小米OJ] 3. 大数相减
查看>>
课后作业2:编写一个文件加解密程序,通过命令行完成加解密工作
查看>>
js 值类型和引用类型
查看>>
java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果
查看>>
java相关。关于jsp中使用el表达式的格式,谢谢!
查看>>
GetDlgItem的用法小结
查看>>
java带包编译
查看>>
树状数组详解(重拾笔记)
查看>>