既然已经在上一篇博客上介绍到了drawer 的简单使用了,今天就来仔细地看看到底官方 API为这控件提供了些什么比较好用实际地方法吧 ('')


官方 API连接:https://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html#inhattrs


假定现在在前面已经有代码:

<pre name="code" class="java">mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);


 
      
 
     

使用代码实现打开和关闭:

 

        一般代码实现打开与关闭都是写在一些触发事件里面的,例如,标题栏图标的点击打开,返回键监听的关闭等等。。。。。。

打开操作:

 

mDrawerLayout.openDrawer(Gravity.LEFT,ture);

 

打开Drawer

 

void openDrawer(int gravity, boolean animate) Open the specified drawer.

Gravity :重心,即决定Drawer弹出的屏幕边缘(Gravity的参数)(与布局设置的 gravity要一致)

Animate : 是否以动画的方式打开 Drawer

 

mDrawerLayout.openDrawer(Gravity.LEFT);

 

打开Drawer

 

void openDrawer(int gravity) Open the specified drawer by animating it out of view.

Gravity :重心,即决定Drawer 弹出的屏幕边缘(Gravity的参数)(与布局设置的 gravity要一致)

默认有动画。

 

关闭操作:

 

mDrawerLayout.closeDrawer(Gravity.LEFT,true);

 

关闭 Drawer

 

void closeorawer(int gravity, boolean animate) Close the specified drawer

Gravity :重心,即决定Drawer收起的屏幕边缘(Gravity的参数)(与布局设置的 gravity要一致)

Animate : 是否以动画的方式打开 Drawer

 

mDrawerLayout.closeDrawer(Gravity.LEFT);

 

关闭 Drawer

 

closeorawer(int gravity) Close the specified drawer by animating it out of view.

Gravity :重心,即决定Drawer 收起的屏幕边缘(Gravity的参数)(与布局设置的 gravity要一致)

默认有动画。

 

mDrawerLayout.closeDrawers();

 

关闭所有已打开的 Drawer

 

void closeorawers() Close all currently open drawer views by animating them out of view.

 

 

 

当前 Drawer的状态的检测:

 

boolean flag =mDrawerLayout.isDrawerOpen(Gravity.LEFT);

 

检测 Drawer 是否已打开,并返回一个 boolean值。若已打开即为 true

 

boolean isDrawerOpen(int drawerGravity) Check if the given drawer view is currently in an open state.

Gravity :重心,即决定Drawer 收起的屏幕边缘(Gravity的参数)(与布局设置的 gravity要一致)

 

 

添加 Drawer的监听器:

 

通过实现Listener 里面的方法可以做到一些动态的操作

 

mDrawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
           
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
<span style="white-space:pre">		</span>//监听当 drawer 发生位移时执行
               
            }
 
            @Override
            public void onDrawerOpened(View drawerView) {
<span style="white-space:pre">		</span>//监听到 drawer 打开时调用
 
            }
 
            @Override
            public void onDrawerClosed(View drawerView) {
<span style="white-space:pre">		</span>//监听到 drawer 关闭时调用
 
            }
 
            @Override
            public void onDrawerStateChanged(int newState) {
<span style="white-space:pre">		</span>//当 drawer 状态发生改变时
 
            }
        });

 

添加drawer 的事件监听器

 

void addDrawerListener(DrawerLayout . DrawerListener listener) Adds the specified listener to the list of listeners that will be notified of drawer events.

 

 

 

如果有更多的使用方法我会几时更新出来的了('')


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐