drawerlayout当侧滑栏中有点击事件时,不消失 ,点击完成之后默认几秒消失,实现方式
时间: 2024-03-02 20:53:37 浏览: 98
Android DrawerLayout 侧滑抽屉全屏显示、点击长按界面弹出抽屉的bug源码修改
5星 · 资源好评率100%
可以通过设置DrawerLayout的监听器来实现侧滑栏中有点击事件时不消失。
首先,需要设置DrawerLayout的监听器:
```java
mDrawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {
// 滑动过程中的处理
}
@Override
public void onDrawerOpened(@NonNull View drawerView) {
// 侧滑栏打开时的处理
}
@Override
public void onDrawerClosed(@NonNull View drawerView) {
// 侧滑栏关闭时的处理
}
@Override
public void onDrawerStateChanged(int newState) {
// 侧滑栏状态改变时的处理
}
});
```
然后,在侧滑栏中的点击事件中,可以先关闭侧滑栏,然后通过Handler来延迟一定时间再打开侧滑栏,这样就可以实现点击完成之后默认几秒消失的效果。
示例代码如下:
```java
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
// 关闭侧滑栏
mDrawerLayout.closeDrawer(GravityCompat.START);
// 延迟一定时间再打开侧滑栏
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mDrawerLayout.openDrawer(GravityCompat.START);
}
}, 2000); // 延迟2秒
return true;
}
});
```
阅读全文