我正在处理片段,我需要在点击包含列表视图的按钮时显示自定义布局。此自定义布局应显示在该按钮下方。 任何人都可以为此提出建议。我已经完成了几乎所有可用于xamarin的链接。我们可以使用SetCustonView方法在android中执行此操作,但不知道如何在C#中显示它
答案 0 :(得分:1)
根据我的经验,你可以做几件事:
1)您可以将ListView放在按钮下,但设置其"可见性"财产到" Visibility.Gone。"按下按钮后,您可以将可见性支柱设置为" Visibility.Visible。"
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放入片段中。单击按钮后,运行FragmentTransaction将片段添加到视图中。
var fragTransaction = this.FragmentManager.BeginTransaction().Replace(Resource.Id.content_frame, myFrag, "current_frag");
fragTransaction.Commit();
答案 1 :(得分:0)
我使用this获得了更好的解决方案来实现上述目标 下面是我实施的代码
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;
}
}
在您的资源中 - &gt;将文件夹创建为“菜单”(如果不存在) 在里面的菜单中添加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>
在下面发表评论以获得更多说明。