onCreateView未被layoutinflator膨胀的片段调用

本文关键字:片段 调用 膨胀 未被 layoutinflator onCreateView | 更新日期: 2023-09-27 18:02:26

我有一个布局,我想显示为一个弹出窗口(用作自定义选项菜单),而在一个viewpager的片段。因此,当点击"选项"按钮时,我做了以下操作:

    public void onOptionsButtonClicked(int buttonHeight)
    {
        LayoutInflater optionsLayoutInflater = (LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService);
        int popupWidth = ViewGroup.LayoutParams.MatchParent;
        int popupHeight = ViewGroup.LayoutParams.WrapContent;
        View layout = optionsLayoutInflater.Inflate(Resource.Layout.TrackOptions, null);
        int popupYOffset = (85 + buttonHeight) * -1;
        var popup = new PopupWindow(context);
        popup.Focusable = true;
        popup.Width = popupWidth;
        popup.Height = popupHeight;
        popup.ContentView = layout;
        popup.SetBackgroundDrawable(new BitmapDrawable());
        popup.OutsideTouchable = true;
        popup.ShowAsDropDown(view, 0, popupYOffset);

    }

这是我想要的,视觉上是这样。意思是,我点击按钮,我看到布局弹出作为一个弹出窗口与我所有的选项。然而,没有一个按钮工作。我在应该与布局相关联的类中放置了一个断点,并注意到onCreateView从未被调用,因此,没有一个按钮和关联的单击事件处理程序被连接起来。所以,我知道为什么它不起作用了。然而,我不知道如何解决它。我认为这是因为,当我膨胀的视图,我从来没有真正创建碎片。我已经做了fragementmanager事务来取代我项目的其他部分的片段,我知道可能会这样做,然而,这是一个不同的情况,因为我试图做一个弹出窗口。

谢谢!

迈克

onCreateView未被layoutinflator膨胀的片段调用

Fragment被附加到activity中,所以你可以在onActivityCreated(Bundle)方法中尝试