我遵循了“ 导航抽屉
”教程,除小故障外,其他所有内容都像魅力一样。我将尽力解释,如果仍然不清楚,我将尝试上传有关该问题的视频。
尝试打开抽屉时只会发生问题,仅在打开时会发生问题,并且有时(并非总是)发生问题。就是说,当我开始打开它时,它会出现毛刺并冻结,打开大约4毫米,并且始终保持相同的距离。然后,如果我向后移动手指,它就不会继续打开或关闭,放开时它会关闭。
请注意:
任何指针将不胜感激。
我研究了的代码,DrawerLayout
发现了下一个问题:当我们触摸屏幕的边缘时,会出现小(20
*密度px)的部分drawer
(这使移动抽屉更加容易)。它不会立即出现,而是在一定时间间隔(160毫秒)后出现。通过实现postDelayed
。
本drawer
可以在几种状态:IDLE
,DRAGGING
和SETTLING
。如果处于此DRAGGING
状态,则无法再使用相同的指针和边缘返回此状态(因为存在一个条件:mEdgeDragsInProgress[pointerId] & edge) == edge
不允许拖动已经拖动的边缘)。
因此,在某些情况下,抽屉DRAGGING
在Runnable
执行延迟时已经移至状态。此延迟动作打开drawer
20
*密度px并更改状态drawer
。因此drawer
无法再移动(因为它无法返回到状态DRAGGING
)。
有一个用于取消延迟动作的代码(它将打开抽屉),但是方法中的该代码onInterceptTouchEvent
仅被调用一次(因为它返回false
)。我认为这段代码应该在方法中onTouchEvent
。
不幸的是,我没有找到任何方法来取消延迟事件(因为它具有private
修饰符,但我无法获得它)。因此,我只有一种发现方式:将的源代码复制DrawerLayout
到我的项目中,并进行以下小的更改:复制
case MotionEvent.ACTION_MOVE: {
// If we cross the touch slop, don't perform the delayed peek for an edge touch.
if (mLeftDragger.checkTouchSlop(ViewDragHelper.DIRECTION_ALL)) {
mLeftCallback.removeCallbacks();
mRightCallback.removeCallbacks();
}
break;
}
从方法onInterceptTouchEvent
到方法onTouchEvent
。
JAVAlang.RuntimeException:无法启动活动组件信息{com.MediaPlayer/com.MediaPlayer.MainActivity}:java。lang.SecurityException:权限拒绝:读取com。Android提供者。媒体MediaProviderURI content://media/external/audio/media from pid=18
我想在RxJava中实现一个下载一些文件的处理队列。我想下载的文件数量可能高达100个左右。 一切都是在Android上使用RxJava 1.1.1开发的 我做错了什么?
我已经调整了控制器构造函数和fxml,所以除了fxml构造和fxml加载之外,控制器的所有fxml设置都在fxml中。这里是我的控制器:
问题内容: 我正在使用ant生成javadocs,但是一遍又一遍地获取此异常-为什么? 我正在使用JDK 1.6.0_06 版本。 问题答案: 看来这已被报告为Java错误。这似乎是由于使用了第三方库(例如JUnit)中的注释,而在Javadoc调用中不包含带有该注释的jar。 如果是这种情况,只需在javadoc上使用-classpath选项并包括额外的jar文件。
问题内容: 我已经调整了控制器的构造函数和fxml,以便将控制器的fxml的所有设置都放在fxml中,除了FXML的构造和fxml的加载。这是我的控制器: 和我的fxml文件: 当调用fxmlLoader.load()并返回FXMLLoader时会发生stackoverflow fxmlLoader = new FXMLLoader(…),然后再次调用fxmlLoader.load()…为什么会发
我下面的教程部分处理打印数组列表的元素。当处理小列表时,该程序完全按照我的预期运行。然而,当输入较大的数字时,字符串格式(我相信)会导致一些奇怪的结果。 我的代码如下: 使用主方法类: 输出(我只引用了足够多的内容)是: 我知道我用完了字母字符,这一行的格式: 仅用于处理“X###”格式的座位。 我想了解的是为什么会出现奇怪的字符(~"和'等)。)。显然,格式不合适。但是为什么它专门产生这个输出呢