我有一些片段是视图传呼机的一部分。那些工作很好。然而,在视图寻呼机中的片段之上,我想把片段放在它们之上(即嵌套或子片段)。因此,在父片段的OnCreateView中,我继续声明我的子片段,然后立即隐藏它。当我显示一个片段时,下面的对象仍然响应点击
optionsFragment = new TrackOptions();
var trans = Activity.SupportFragmentManager.BeginTransaction();
trans.Add(trackOptionsContainer.Id, optionsFragment, "Track Options");
trans.Hide(optionsFragment);
trans.Commit();
然后,在父片段,当我想告诉这个孩子片段,我只需调用表现出来,当我希望它走了,我再次隐藏它。
起初,我注意到孩子是透明的,我可以透过它看到父母。如果我设置了背景,那么问题就会消失。
但是,现在我注意到,在查看孩子并单击屏幕时,家长仍然会对事件(点击事件)做出响应,因为按钮由于父母而不可见,因此不可见展示孩子。
我怀疑这是因为我需要在显示孩子时明确隐藏父母。它是否正确?如果是这样,这里有两个我不明白的后续问题。 1.我不想在每次想要显示它时重新实例化父项。我只想要启动应用程序时创建的一个实例。如果我必须明确地隐藏它,那么如何在使用片段类的同一个实例时再次显示它? 2.我已经阅读了很多不同的选项来获得一个事件,当一个片段显示,我已经尝试了大部分(OnHiddenChanged,OnResume,UserVisibleHint),但他们似乎没有与这个子片段设置很好地工作。当我的孩子片段被显示时,我甚至会使用什么?
谢谢!
迈克
这个问题不是重复的吗? http://stackoverflow.com/questions/9190855/clicking-on-the-fragment-invoke-activity-behind-it – LeonardoSibela
它似乎是重复的,但我确实尝试搜索之前我张贴(我一直这样做),这没有为我而来。也许我的搜索条件已关闭。无论如何,这与下面的答案一起帮助。 –
别担心。我很容易找到它,因为我以前经历过同样的问题,所以我确切知道要搜索什么。我会建议关闭它作为重复。 – LeonardoSibela