DrawerLayout侧滑详解
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/drawer_main_layout" tools:context="com.example.drawerlayout.MainActivity"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/btn_main_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="OpenRightMenu" android:text="打开" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout> <fragment android:id="@+id/id_left_menu" android:name="com.example.drawerlayout.fragment.LeftFragment" android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="left" android:tag="Left" /> <fragment android:id="@+id/id_right_menu" android:name="com.example.drawerlayout.fragment.RightFragment" android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="right" android:tag="RIGHT" /> </android.support.v4.widget.DrawerLayout>
看布局文件我们可以知道,左菜单和右菜单我们都是用一个fragment进行实现,具体的代码就不再写了,大家可以下载源码查看
2、看下MainActivity.javapublic class MainActivity extends AppCompatActivity { private DrawerLayout mDrawerLayout; private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); setListeners(); } private void initViews() { mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_main_layout); mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT); mButton = (Button) findViewById(R.id.btn_main_right); } private void setListeners() { mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mDrawerLayout.openDrawer(Gravity.RIGHT); mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, Gravity.RIGHT); } }); mDrawerLayout.setDrawerListener(new DrawerLayout.SimpleDrawerListener() { //在这个方法里可以设置动画效果 @Override public void onDrawerSlide(View drawerView, float slideOffset) { } // 菜单打开 @Override public void onDrawerOpened(View drawerView) { } // 菜单关闭 @Override public void onDrawerClosed(View drawerView) { mDrawerLayout.setDrawerLockMode( DrawerLayout.LOCK_MODE_LOCKED_CLOSED, Gravity.RIGHT); } @Override public void onDrawerStateChanged(int newState) { } }); } }
源代码

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【我的Android进阶之旅】解决SVN Cleanup错误: Failed to run the WC DB work queue ass...
错误描述 在Android Studio中点击VCS向下箭头使用SVN Update功能更新代码的时候,报错如下所示: 错误描述信息: Error:svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted 如错误描述提示我Cleanup,于是我尝试 VCS -> Cleanup Project进行Cleanup操作 可是我Cleanup失败,失败提示如下所示: 错误描述信息: Error:Error performing cleanup for 'D:\BBK_SVN\I3_Trunk': svn: E155009: Failed to run the WC DB work queue associated with 'D:\BBK_SVN\I3_Trunk', work item 3685 (file-install sync/maven_pom.properties 1 0 1 1) svn: E720005: Can't move 'D:\BBK_SVN\I3...
- 下一篇
关于React Native 安卓首屏白屏优化
问题描述 在android中,当点击某个rn模块的入口按钮,弹出rn的activity到rn的页面展现出来的过程中,会有很明显的白屏现象,不同的机型不同(cpu好的白屏时间短),大概1s到2s的时间。 注意,只有在真机上才会有此现象,在模拟器上没有此现象完全是秒开。 优化分析 通过工具分析,问题主要在下面的代码上, ReactRootView mReactRootView = createRootView(); mReactRootView.startReactApplication(mReactInstanceManager, getMainComponentName(), getLaunchOptions()); ReactActivity的onCreate()的完整代码如下: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getUseDeveloperSupport() && Build.VERSION.SDK_INT >...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合Redis,开启缓存,提高访问速度