1

我有一個ListFragment,我附上了一些標題(WebView和其他東西)和頁腳。據我所知,Android處理WebViews的onLongClick事件,以顯示CAB複製/粘貼到/從剪貼板。這對我來說非常好,但我的問題是,無論何時我長時間點擊WebView的內容,顯示CAB,該視圖(ListView的標題)都會自動滾動到底部。ListView項longClick

這看起來像是一個ListView項目longClick的默認動作,所以我的問題是,我怎樣才能在不損害其他東西的情況下重寫這個東西(自動滾動到longClicked項的底部)(例如:如果我長時間點擊不需要複製/粘貼CAB的項目,那麼ListView應該像處理它一樣處理它)。我試着重寫ListView的onItemLongClick方法來返回false(所以它會通過返回進一步,但它不一定會做我想做的事情,它會創建一個奇怪的錯誤)。基本上(我認爲)如果用戶長時間點擊的項目包含WebView,我需要將longClick事件分派給WebView,否則ListView應該處理它。

LE:我測試了ListFragment的一個新樣本,它的頭部長了一個很長的(比屏幕大的)WebView,看起來好像它沒有自動滾動到WebView上的LongClick上的Header底部。話雖如此,我看不出我能做些什麼來創造這樣的行動。任何想法都會非常感謝,也許我錯誤地忽略了一些小事。

回答

0

我花了很長時間才確定此問題有什麼問題,但最後我設法做到了。

這個非常行:

requestWindowFeature(Window.FEATURE_NO_TITLE);

在Activity中搞亂了一切。希望這會幫助別人不要在這上面花費太多時間。

PS。它可以與

<item name="android:windowNoTitle">true</item> 

也在xml中。

0

你devined您listAdaper後:如:

SimpleAdapter adapter = new SimpleAdapter(
      this, 
      list, 
      R.layout.playlist_view, 
      new String[] {"fileName","path"}, 
      new int[] {R.id.text1,R.id.text2} 
    ); 

setOnLongClickListener

setListAdapter(adapter); 
    ListView listView = getListView(); 
    listView.setOnLongClickListener(new AdapterView.OnLongClickListener() { 
@Override 
//Ovverride onItemLongClick click here (requires API 20+) 

PS:在我的項目名單覆蓋長按的

ArrayList<HashMap<String,String>> 

例子:

public abstract boolean onItemLongClick (AdapterView<?> parent, View view, int position, long id 
{ 
Intent service=new Intent(YourClassName.this,ClassToNavigate.class); 
      service.putExtra("ElementPosition",position); 
      service.putExtra("SelectedFromList",true); 
      startService(service); 
} 
+0

onItemLongClick身體的方法應該如何?我已經說過我試過這樣做沒有適當的結果。訣竅在於該方法的正文。 – DoruAdryan 2014-10-17 09:41:15

+0

請嘗試附上代碼覆蓋。我沒有嘗試,但它應該工作@DoruAdryan 位置是您的列表元素的位置(以0開頭)) – Hunkeone 2014-10-17 09:54:50

+0

對不起,但我仍然不滿意答案。你告訴我如何創建一個隨機的onItemLongClick,但這不是我想要或需要的。正如我所說的,當我長時間點擊headerview(其中包含其他視圖中的WebView)的內容時,默認Android CAB將出現並突出顯示所敲擊的單詞,這沒關係。但問題是,它滾動到標題的底部,我不得不手動滾動回高亮顯示的單詞。問題可能不在於ListView監聽器內部,這只是我的虔誠意見。 – DoruAdryan 2014-10-17 13:41:20

0

您可以將OnItemLongClickListener附加到列表中。在回調中,您可以通過檢查位置對應的位置來檢查長點擊行是否爲網頁視圖,並返回true

+0

所以基本上,你說的是,我檢查每當我點擊一個ListView項目,並檢查是否在該項目中的視圖之間,有一個WebView,如果這是情況比WebView應該處理它。問題是:如果我長時間點擊一個WebView,我會做些什麼,我會「請求」處理該操作的需求(換句話說,「嗨ListView,讓我來處理這個問題」)?如果是的話,你能提供一個例子嗎? – DoruAdryan 2014-10-17 09:44:09