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