public void ShowMenu() { IsMenuShown = true; activity.RunOnUiThread(() => { Parent.RemoveAllViews(); Parent.AddView(scrollView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent)); combo.SetSelection(0, false); flowLayout.RemoveAllViews(); foreach (var fl in ProgramMenu.Values) { fl.Dispose(); } flowLayout.AddView(NewProg, new FlowLayout.LayoutParams(FlowLayout.LayoutParams.MatchParent, FlowLayout.LayoutParams.WrapContent)); ProgramMenu = new Dictionary <int, FlowLayout>(); foreach (var prog in Programs) { FlowLayout pfl = new FlowLayout(activity); pfl.SetBackgroundColor(prog.Value.Color); flowLayout.AddView(pfl, new FlowLayout.LayoutParams(FlowLayout.LayoutParams.MatchParent, FlowLayout.LayoutParams.WrapContent)); TextView pname = new TextView(activity) { Text = prog.Key.ToString() + ". " + prog.Value.name }; pfl.AddView(pname, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent)); Button BtnOpen = new Button(activity) { Text = "Open", Tag = prog.Key }; pfl.AddView(BtnOpen, new FlowLayout.LayoutParams(FlowLayout.LayoutParams.MatchParent, FlowLayout.LayoutParams.MatchParent)); BtnOpen.Click += ((object sender, EventArgs e) => { HideMenu(); ShowCLI(prog.Key); }); Button BtnKill = new Button(activity) { Text = "Terminate", Tag = prog.Key }; pfl.AddView(BtnKill, new FlowLayout.LayoutParams(FlowLayout.LayoutParams.MatchParent, FlowLayout.LayoutParams.MatchParent)); BtnKill.Click += ((object sender, EventArgs e) => { RemoveCLI(prog.Key); }); ProgramMenu.Add(prog.Key, pfl); } }); }