- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我的 NavigationView
布局
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/header"
app:menu="@menu/meny" />
headerLayout
有一个水平的 RecyclerView
,其中有一些用户可以在上面滚动的项目。
我的问题是每当我想在 RecyclerView
中滚动时,drawerLayout 就会关闭。
有什么方法可以在 Drawerlayout
上支持水平 RecyclerView
吗?
最佳答案
当用户在 RecyclerView
上滚动时,您应该禁用拦截 DrawerLayout
上的触摸事件,因此创建一个自定义 DrawerLayout
如下:
public class DrawerLayoutHorizontalSupport extends DrawerLayout {
private RecyclerView mRecyclerView;
private NavigationView mNavigationView;
public DrawerLayoutHorizontalSupport(Context context) {
super(context);
}
public DrawerLayoutHorizontalSupport(Context context, AttributeSet attrs) {
super(context, attrs);
}
public DrawerLayoutHorizontalSupport(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (isInside(ev) && isDrawerOpen(mNavigationView))
return false;
return super.onInterceptTouchEvent(ev);
}
private boolean isInside(MotionEvent ev) { //check whether user touch recylerView or not
return ev.getX() >= mRecyclerView.getLeft() && ev.getX() <= mRecyclerView.getRight() &&
ev.getY() >= mRecyclerView.getTop() && ev.getY() <= mRecyclerView.getBottom();
}
public void set(NavigationView navigationView, RecyclerView recyclerView) {
mRecyclerView = recyclerView;
mNavigationView = navigationView;
}
}
在展开您的布局后,只需调用 set
并传递您的 NavigationView
和 RecyclerView
。
在 onInterceptTouchEvent
中,我检查抽屉是否打开以及用户在 RecyclerView
中触摸,然后我返回 false,所以 DrawerLayout
什么都不做
关于android - DrawerLayout 上的水平回收 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32134373/
这是我的 mainlayout 文件。 这是我编写与抽屉导航相关的代码的主要布局文件,还使用 include 包含工具栏。
我正在尝试使用新的 Android 架构设置带有应用栏配置的抽屉导航布局。我遇到的问题是 android studio 告诉我设置抽屉布局的方式已被弃用。 这是我的 xml 配置
最近我添加了“使用 google 登录”按钮并且工作正常,但是现在当我尝试运行该应用程序时弹出此错误,我不知道为什么。 这是完整的异常: E/AndroidRuntime: FATAL EXCEPTI
我正在尝试使用 DrawerLayout 显示两个 fragment ,滑出 fragment 具有 ListView 。我主要遵循在 developers site 上找到的示例. 我几乎一切正常,
这是我的 xml 布局文件: 但是当我启动我的 Android 应用程序时,出现错误(在运行时): E/AndroidRuntime: FATAL
我收到 DrawerLayout 无法转换的消息,因此显示错误并且我的应用程序崩溃。 我是一名新的 Android 开发人员,请帮助我。 这是我的主要 Activity : public class
我的申请遇到了奇怪的问题。我的 minSdkVersion 是 16。我的应用程序在 android lollipop 和更高版本的设备上工作正常,但在 android 4.1 和 4.4 上不工作。
我正在尝试创建一个带有透明 Toolbar(带有汉堡图标)和 NavigationView 的 DrawerLayout。 这是我的 main_activty 的布局: 这就是
这个问题已经有答案了: How to fix error: The markup in the document following the root element must be well-for
我对 DrawerLayout 有疑问。我设法做了一个抽屉,这不是问题。但不显示主要内容。 我尝试了所有可能的组合。即使我删除 fragment 主要内容仍然不显示。 有人能发现问
我需要帮助。我一直在尝试操纵它,但似乎无法完成。我正在尝试使图像适合抽屉布局。我调用页眉图像布局 (header.xml) 为: ... 为此
我对 drawerLayout 有疑问。在 drawerLayout 中,我有两个 Linearlayouts。一个是直接显示的主菜单,另一个是用抽屉滑动激活的。当我滑动抽屉菜单时,我无法点击按钮。但
我使用库制作了一个应用程序:jfeinstein10/SlidingMenu .但是这个库有点旧,我想使用 Appcompat 库。 所以我的问题是是否可以使用 drawerLayout 来滑动内容并
我正在制作一个简单的 Android 应用程序,我想制作一个 DrawerLayout 菜单。我去用的时候说必须声明抽屉布局。我检查了我的 SDK 管理器,Android 支持 jar 已安装并且是最
我已经查看了这个问题的所有其他答案,但仍然无法解决这个错误: app:id/drawerLayout) is not a sliding drawer 我在 closeDrawer 行遇到错误:
我有一个带有侧边菜单的 android 应用程序(默认的 android Activity 抽屉导航 Activity ) 我想隐藏滚动条。我为此使用了这段代码: NavigationView
我正在尝试使用全屏 DrawerLayout 实现完全透明的状态栏,就像在新的 IO19 应用程序中一样: 常规的透明状态栏效果总是有一个透明的灰色背景。 最佳答案 设置NavigationView的
我想要的是显示隐藏在左侧的栏,当用户进入布局时,想法是您知道有那个栏,而不必在操作栏上放置一个图标来表示它的存在 最佳答案 如果你想在第一次创建 Activity 时打开抽屉导航,你可以简单地做这样的
我有一个 View 与不在列表中的抽屉导航的底部对齐。 activity_main.xml
当我在打开和关闭抽屉布局上设置锁定和禁用滑动时,我无法通过按下手机上的后退按钮来关闭它,当模式未锁定时按下后退按钮导致关闭但当我将模式更改为例如: drawer_layout.setDrawerLoc
我是一名优秀的程序员,十分优秀!