使用WebView作为Header自动滚动的ListView

时间:2014-10-20 16:02:05

标签: android android-listview android-webview

我遇到这种情况,我在其中创建了ListFragment我附加了HeaderView,其中包含一个长WebView个视图。 我开始这个thread,在那里我解释了非常详细的情况,每当用户试图长按} WebView内容时,就会:只是说从中复制一个短语并将其粘贴到其他地方,它会自动滚动到HeaderView的底部。

我创建了一个简单的例子(gist),其中我证明了这种行为,因此我可以更容易地理解。它的布局只是简单的布局,没有什么特别的。 (FrameLayoutActivityWebViewListFragment headeView

正如我在上面的主题中所提到的,这个自动滚动问题可以得到纠正'删除

requestWindowFeature(Window.FEATURE_NO_TITLE);

行,一切正常,但我需要我的Activity来隐藏动作栏/标题栏,以使其符合设计要求。我尝试将ActionBarActivitygetSupportActionBar().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" />

1 个答案:

答案 0 :(得分:1)

我认为主要问题是您将可滚动视图(webview)作为另一个可滚动视图(listview)的一部分,您应该尝试创建自定义webview并以这种方式覆盖onTouchEvent方法:

@Override
public boolean onTouchEvent(MotionEvent event) {
    requestDisallowInterceptTouchEvent(true);       
    return super.onTouchEvent(event);
}

这应该禁用webview(listview)的父级来拦截触摸事件