gpt4 book ai didi

c# - RegisterForContextMenu 似乎没有效果

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:36 25 4
gpt4 key购买 nike

根据我能够从谷歌收集到的信息,如果我希望在长按所述 View 时调用 OnCreateContextMenu,则我必须在 View 上调用 RegisterForContextMenu。这不会发生。

有趣的是,如果我在下面的代码中传入 View 而不是 gameList,如果我长按主视图的空白部分,则会出现上下文菜单。长按列表(这是一个 subview )仍然没有结果。

我还尝试在 ListView 上注册一个 ItemLongClick 事件监听器,这也没有被调用:/

GameList fragment 在 viewpager 中运行。

using Android.Views;
using Android.OS;
using Android.Runtime;
using Android.Widget;

using Android.Support.V4.App;

using Models = Boardwar.Common.Models;
using Boardwar.AndroidClient.Adapters;


namespace Boardwar.AndroidClient.Fragments {
public class GameList : Fragment {
GamesAdapter GamesAdapter;


public GameList () {
}

public GameList (IntPtr handle, JniHandleOwnership jni) : base(handle, jni) {
}


public override View OnCreateView (LayoutInflater inflater, ViewGroup parent, Bundle bundle) {
return inflater.Inflate(Resource.Layout.GameList, parent, false);
}

public override void OnActivityCreated (Bundle p0) {
base.OnActivityCreated(p0);

var mainActivity = Activity as MainActivity;

var gameList = View.FindViewById<ListView>(Resource.Id.game_list);

GamesAdapter = new GamesAdapter(mainActivity);
gameList.Adapter = GamesAdapter;
mainActivity.GamesAdapter = GamesAdapter;

RegisterForContextMenu(gameList);

View.FindViewById(Resource.Id.new_game_button).Click += (sender, e) => {
mainActivity.ReplaceChildFragments(typeof(NewGame));
};
}

public override void OnCreateContextMenu (IContextMenu menu, View view, IContextMenuContextMenuInfo menuInfo) {
base.OnCreateContextMenu(menu, view, menuInfo);
menu.Add(Resource.String.remove_finished_games);
}

public override bool OnContextItemSelected (IMenuItem item) {
MainActivity.Client.RemoveFinishedGames();
return true;
}

public override void OnResume () {
base.OnResume();
GamesAdapter.UpdateList();
}

public override void OnDestroyView () {
base.OnDestroyView();
(Activity as MainActivity).GamesAdapter = null;
}
}
}

最佳答案

我的问题是我在实际列表项上注册了 ClickHandler,而不是在实际 ListView 上注册了全局 ClickHandler。这会阻止点击事件传播到 ListView ,这就是上下文菜单不会出现的原因。

关于c# - RegisterForContextMenu 似乎没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16473803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com