我有一个ListFragment,我附加了一些标题(WebView和其他东西)和页脚。据我所知,Android处理WebViews的onLongClick事件,以显示带有/从剪贴板复制/粘贴的CAB。这对我来说非常好,但我的问题是每当我长时间点击WebView的内容时,为了显示CAB,这个视图(ListView的标题)会自动滚动到它的底部。
这似乎是ListView项目longClick的默认操作,所以我的问题是,如何覆盖这个东西(自动滚动到longClicked项目的底部),而不会损坏其他东西(例如:if我长时间点击一个不需要复制/粘贴的CAB的项目,而ListView应该像现在一样处理它。我尝试覆盖ListView的onItemLongClick方法返回false(因此它将进一步传递返回,但它似乎不一定做我想做的事情,它会产生一个奇怪的错误)。
基本上(我认为)如果用户长时间点击的项目包含WebView,我需要将longClick事件分派给WebView,否则ListView应该处理它。
LE:我测试了ListFragment的一个新的小样本,其中一个长(大于屏幕)的WebView作为其标题,并且看起来它不会自动滚动到WebView上的LongClick上的Header底部。话虽如此,我无法看到我能做些什么来创造这样的行动。任何想法都会非常感激,也许我错误地忽略了一些小事。
答案 0 :(得分:0)
:例如:
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+)
P.S:我的项目清单是
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);
}
答案 1 :(得分:0)
您可以将OnItemLongClickListener附加到列表中。在它的回调中,你可以通过检查对应于它的位置来检查长按行是否是webview,并在这种情况下返回true
答案 2 :(得分:0)
我花了很长时间才确定这个问题的问题,但最终我成功了。
这一行:
活动中的requestWindowFeature(Window.FEATURE_NO_TITLE);
弄乱了一切。希望这能帮助别人不要失去这么多时间。
PS。它可以用
复制<item name="android:windowNoTitle">true</item>
也在xml中。