从简单的概述我有一个自定义视图,其中包含用户可以拖动和调整大小的一些位图.
我这样做的方式是相当标准的,因为我在我的CustomView中重写onTouchEvent并检查用户是否在图像中触摸等.
当我想将这个CustomView放在ScrollView中时,我的问题出现了.这可行,但ScrollView和CustomView似乎竞争MotionEvents,即当我尝试拖动图像时,它移动缓慢或视图滚动.
我想我可能需要扩展ScrollView,以便我可以覆盖onInterceptTouchEvent并让它知道用户是否在图像的范围内而不是尝试滚动.但是,因为ScrollView在层次结构中更高,我将如何访问CustomView的当前状态?
有没有更好的办法?
我有一个带有位图的自定义视图,用户可以拖动它.
我想这样做,当他们长按其中一个我可以弹出一个上下文菜单,其中包括重置位置等选项.
在自定义视图中,我添加了我的OnLongClickListener:
this.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// show context menu..
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
并覆盖onTouchEvent看起来像这样:
public boolean onTouchEvent(MotionEvent event) {
handleDrag(event);
super.onTouchEvent(event);
return true;
}
Run Code Online (Sandbox Code Playgroud)
handleDrag函数查找被按下的对象,并处理更新它的位置.
我的问题是,当我开始拖动图像时,OnLongClickListener也会触发.我不确定解决这个问题的最佳方法.
我已经尝试为handleDrag添加一个阈值,如果用户触摸但不尝试拖动则返回false,但我发现仍然难以获得正确的处理程序.
任何人都可以建议在拖动时跳过OnLongClickListener的方法吗?
android drag-and-drop long-click android-custom-view onlongclicklistener
如果我在Android Studio中编辑现有代码行并接受自动完成,则会在光标右侧显示以下标记:

有没有办法禁用此行为,保持自动完成加上其余的行?
我正在使用ActionBarSherlock和ViewPagerIndicator来创建一个包含选项卡和列表导航的活动.
选项卡由FragmentStatePagerAdapter支持,并允许用户在应用程序的不同部分之间导航.列表导航允许用户切换他们当前所在的选项卡的视图模式,例如,如果他们正在查看搜索结果,则他们能够在列表和网格模式之间切换.
我遇到的问题是,当我在选项卡之间滚动时,列表导航会间歇性地停止工作.我可以单击微调器,它会显示选项列表,但是当我选择其中一个微调器中的文本时:
(出于某种原因,使用FragmentPagerAdapter而不是FragmentStatePagerAdapter似乎可以经常停止问题,但偶尔也会发生.)
有任何想法吗?
谢谢
android actionbarsherlock android-actionbar viewpagerindicator
当我使用"java -ea A"运行以下代码时,断言更正会触发,但我没有提到第二个参数.
public class A {
public A() {
assert 1==2, "We have a problem";
}
public static void main(String[] args) {
A a = new A();
}
}
Run Code Online (Sandbox Code Playgroud)
似乎无法在任何地方找到答案,我错过了什么?