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事务来取代我项目的其他部分的片段,我知道可能会这样做,然而,这是一个不同的情况,因为我试图做一个弹出窗口。
谢谢!
迈克Fragment被附加到activity中,所以你可以在onActivityCreated(Bundle)方法中尝试