当我显示片段时,下面的对象仍会响应点击

时间:2016-08-22 19:17:23

标签: c# android .net xamarin.android

我有一些片段是视图寻呼机的一部分。那些工作正常。但是,在视图分页器中的片段之上,我想将片段放在它们之上(即嵌套或子片段)。因此,在父片段的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)但它们似乎都不适合这个子片段设置。当我的孩子片段出现时我甚至会使用什么?

谢谢!

麦克

2 个答案:

答案 0 :(得分:1)

只需将您的片段设置为可点击,即不允许点击通过。别担心,由于片段的背景不是可点击的背景,因此您不会看到任何点击。

答案 1 :(得分:0)

让你的片段 xml 父布局 android:clickable="true" 现在任何点击都不会被发送到片段返回堆栈