我遇到这种情况,我在其中创建了ListFragment
我附加了HeaderView
,其中包含一个长WebView
个视图。
我开始这个thread,在那里我解释了非常详细的情况,每当用户试图长按1>} WebView
内容时,就会:只是说从中复制一个短语并将其粘贴到其他地方,它会自动滚动到HeaderView的底部。
我创建了一个简单的例子(gist),其中我证明了这种行为,因此我可以更容易地理解。它的布局只是简单的布局,没有什么特别的。 (FrameLayout
为Activity
,WebView
为ListFragment headeView
。
正如我在上面的主题中所提到的,这个自动滚动问题可以得到纠正'删除
requestWindowFeature(Window.FEATURE_NO_TITLE);
行,一切正常,但我需要我的Activity来隐藏动作栏/标题栏,以使其符合设计要求。我尝试将ActionBarActivity
与getSupportActionBar().hide()
一起使用,但具有相同的自动滚动问题结果。
我可以做些什么来将其操纵到所需的结果?
LE:我有一种感觉,不知怎的,我可以在WebView上访问onLongClick的默认行为,并且在调用默认方法后我可以返回true,这样事件就不会出现。进一步调度(也称为ListView)。我搜索了所有地方,但是我找不到这段代码来激活onLongClick上的默认行为(带有选择和复制/粘贴的startActionMode)。
LE2:布局如下: MainActivity布局包含具有match_parent高度/宽度的FrameLayout。 HeaderView是一个包含match_parent高度/宽度WebView的布局。
这是标题视图布局:
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/wv_test"
android:layout_width="match_parent"
android:layout_height="match_parent" />
答案 0 :(得分:1)
我认为主要问题是您将可滚动视图(webview)作为另一个可滚动视图(listview)的一部分,您应该尝试创建自定义webview并以这种方式覆盖onTouchEvent方法:
@Override
public boolean onTouchEvent(MotionEvent event) {
requestDisallowInterceptTouchEvent(true);
return super.onTouchEvent(event);
}
这应该禁用webview(listview)的父级来拦截触摸事件