繁体   English   中英

如何在Xamarin中创建可重复使用的图标菜单

[英]How to create reusable icon menu in Xamarin

我想创建由TmageViews组成的可重用图标菜单。 我一直在尝试寻找一些很好的例子,但是,我是Xamarin和C#开发的新手,但是我没有发现很多。

我的项目

我创建了相同的菜单模式,该菜单模式包含在包含include标签的每个页面中,并且在各个页面中使用。

这些页面中的每一个都有自己不同的布局,并被定义为单独的活动。

菜单可以用,但我认为需要反复定义相同的元素。

请参见下面的代码:

    protected override void OnCreate (Bundle bundle)
    {

        base.OnCreate (bundle);

        SetContentView (Resource.Layout.AirConPage);

        ImageView LightCat_btn = FindViewById<ImageView> (Resource.Id.Lights);
        LightCat_btn.Click += new EventHandler (LightBtn_Click);

        ImageView BlindCat_btn = FindViewById<ImageView> (Resource.Id.Blinds);
        BlindCat_btn.Click += new EventHandler (BlindsBtn_Click);

        void LightBtn_Click(object Sender, EventArgs e) {

            Intent i = new Intent();

            i.SetClass(this, typeof(LightPage));
            //  i.AddFlags(ActivityFlags.NewTask);

            StartActivity(i);
            Finish();

        }

        void BlindsBtn_Click(object Sender, EventArgs e) {

            Intent i = new Intent();

            i.SetClass(this, typeof(BlindPage));
            //  i.AddFlags(ActivityFlags.NewTask);

            StartActivity(i);
            Finish();

        }

我想为菜单创建外部类,在该类中一次定义ImageView对象,然后可以通过继承或其他方式将它们加载到项目的每个页面中,但是我不知道该如何实现。

如果有任何帮助,建议或链接,我将非常感谢。

如果您有任何疑问或需要更多信息,请发布它们。

提前致谢。

我的建议是使您的菜单为Android Fragment。 Xamarin有一个很好的演练教程: http : //docs.xamarin.com/guides/android/platform_features/fragments/fragments_walkthrough

使用片段,您可以使用片段事务替换部分布局:

var menuFragment = new MenuFragment();
var transaction = FragmentManager.BeginTransaction ();
transaction.Replace (Resource.Id.menuFrame, menuFragment);
transaction.Commit ();

对于菜单片段,您将创建一个扩展Fragment的Android Fragment。 然后,您可以重写onCreateView方法来设置视图内容:

public override View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    inflater.Inflate (Resource.Layout.MyMenu, container);
    return base.OnCreateView (inflater, container, savedInstanceState);

}

在Fragment类中,您可以有一个父Activity监听的Event。

您可以做的另一种选择是为菜单定义一个布局,然后将其“包括”在其他布局中:

http://developer.android.com/training/improving-layouts/reusing-layouts.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM