2014-10-20 80 views
2

我有這種情況,在那裏我創建了一個ListFragment我附加了一個HeaderView,其中包含長其他視圖WebView。 我開始了這個thread,在那裏我解釋得非常詳細,其中每當用戶試圖長按WebView內容上,爲了:讓我們只是說從它複製一個短語並粘貼到其他地方,它會自動獲取滾動到HeaderView的底部。ListView與WebView作爲標題自動滾動

我創建了一個簡單的例子(這裏gist),其中我證明的行爲,所以我可以更容易地理解。它的佈局只是簡單的佈局,沒有什麼不尋常的。 (一個FrameLayoutActivity和用於ListFragment headeView一個WebView)。

正如我在上面的線程所提到的,自動滾動的這個問題可以通過移除

requestWindowFeature(Window.FEATURE_NO_TITLE); 

線「修正」,一切工作正常,但我需要我的活動隱藏的動作條/標題欄它要符合設計。我嘗試使用ActionBarActivitygetSupportActionBar().hide(),但使用相同的自動滾動問題結果。

我能做些什麼來操縱成期望的結果呢?

LE:我有一種感覺,我可以在WebView上訪問onLongClick的默認行爲,在調用默認方法之後,我可以返回true,這樣事件就不會再被調度(又名ListView )。我到處搜索,但我無法找到這段代碼來觸發onLongClick的默認行爲(startActionMode,選擇和複製/粘貼我推測)。

LE2:佈局如下: MainActivity佈局包含一個帶有match_parent高度/寬度的FrameLayout。 HeaderView是一個包含match_parent高度/寬度WebView的佈局。

這是headerview佈局:

<?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

哪裏是你的R.layout.act_main?如果你想有人幫助你。您應該提供所有信息:) – 2014-10-28 09:14:52

+0

MainActivity佈局僅具有match_parent寬度/高度的FrameLayout。沒有什麼特別的。我也用這個信息重新編輯過。 – DoruAdryan 2014-10-28 09:28:11

+0

我複製粘貼你的要點,但這些並沒有發現「R.id.container_list」((的WebView)header.findViewById(R.id.wv_test)),R.layout.frag_header和其他許多 – 2014-10-28 09:41:08

回答

1

我認爲主要的問題是,你把滾動視圖(web視圖)作爲另一個滾動視圖(列表視圖),你應該嘗試創建一個自定義網頁流量和覆蓋的部分該方法的onTouchEvent這樣:

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

這應該禁用的WebView(列表視圖)的父攔截觸摸事件

+0

答案可能是我在可視化正確的道路上,但它需要多一些的工作。我是說,究其原因是,現在的列表視圖不會在所有的滾動(概率,因爲我CustomWebView是「偷」這個事件),所以我需要做的,是讓只有當我longClick上的WebView這requestDissallowInterceptTouchEvent發生。你能幫我解決這個問題嗎? – DoruAdryan 2014-10-30 09:35:59

+0

你可以做的最好的事情是設置requestDisallowInterceptTouchEvent(true);當你觸摸webview時,當你觸摸列表視圖時,false,唯一的問題是,每當你想要改變截取時,你都需要觸摸屏幕。否則,如果你不需要標題滾動你的列表,你可以將它們分開。 – TheRedFox 2014-10-30 09:45:20