![](/img/trans.png)
[英]How do I add a custom view to stack layout from code behind in Xamarin
[英]How do I add a custom view on click of a button Xamarin
我正在處理片段,需要單擊包含列表視圖的按鈕才能顯示自定義布局。 該自定義布局應顯示在該按鈕下方。 任何人都可以為此提出建議。我已經瀏覽了幾乎所有適用於xamarin的鏈接。 我們可以在Android中使用SetCustonView方法執行此操作,但不知道如何在C#中顯示它
以我的經驗,您可以做幾件事:
1)您可以將ListView放在按鈕下,但是將其“ Visibility”屬性設置為“ Visibility.Gone”。 按下按鈕后,您可以將“可見性”屬性設置為“可見性。可見”。
View.FindViewById<Button>(Resource.Id.MyButton).Click += (object sender, System.EventArgs e) =>
{
View.FindViewById<ListView>(Resource.Id.MyListView).Visibility = Android.Views.ViewStates.Visible;
};
2)另一個選擇是將ListView放在Fragment中。 單擊按鈕后,您將運行FragmentTransaction將Fragment添加到視圖中。
var fragTransaction = this.FragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, myFrag, "current_frag");
fragTransaction.Commit();
我得到了一個更好的解決方案,以實現使用上述厚望這下面是我實現的代碼
var buttonClick = FindViewById<Button>(Resource.Id.button);
PopupMenu menu = new PopupMenu(Activity, Resource.Id.button);
menu.MenuInflater.Inflate(Resource.Menu.reports_nav_menu, menu.Menu);
buttonClick .Click += (s, arg) => {
menu.Show();
};
menu.MenuItemClick += (s1, arg1) => {
DisplayMenuOptionsOnClick(s1, arg1);
};
private void DisplayMenuOptionsOnClick(Object s1,PopupMenu.MenuItemClickEventArgs arg1) {
switch (arg1.Item.TitleFormatted.ToString()) {
case "Item 1":
// Do Something
break;
case "Item 2":
// Do Something
break;
case "Item 3":
// Do Something
break;
}
}
在您的資源->在菜單內以'菜單'(如果不存在)創建文件夾中,添加xml文件並添加以下代碼
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/item_one"
android:title="Item One"/>
<item
android:id="@+id/item_two"
android:title="Item Two"/>
<item
android:id="@+id/item_three"
android:title="Item Three"/>
</menu>
請在下面發表評論以進一步澄清。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.