예제 #1
0
        public override void OnViewAdded(Android.Views.View child)
        {
            base.OnViewAdded(child);

            if (child.GetType() == typeof(Support.Toolbar))
            {
                var lastPage = Element?.Navigation?.NavigationStack?.Last();

                /*if (_toolbar !=null)
                 * {
                 *  _toolbar.ChildViewAdded -= OnToolbarChildViewAdded;
                 *  var lPage = Element?.Navigation?.NavigationStack?.Last();
                 *  lPage.PropertyChanged -= LastPage_PropertyChanged;
                 * }*/

                _toolbar = (Android.Support.V7.Widget.Toolbar)child;
                _originalToolbarBackground = _toolbar.Background;

                var originalContent = (Context as Activity)?.Window?.DecorView?.FindViewById <FrameLayout>(Window.IdAndroidContent);
                if (originalContent != null)
                {
                    _originalWindowContent = originalContent.Foreground;
                }

                _parentLayout = new Android.Widget.FrameLayout(_toolbar.Context)
                {
                    LayoutParameters = new Android.Widget.FrameLayout.LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent)
                };

                //Create custom title view layout
                _titleViewLayout = new Android.Widget.LinearLayout(_parentLayout.Context)
                {
                    Orientation      = Android.Widget.Orientation.Vertical,
                    LayoutParameters = new Android.Widget.FrameLayout.LayoutParams(LayoutParams.WrapContent, LayoutParams.WrapContent)
                };

                _titleTextView = new AppCompatTextView(_parentLayout.Context)
                {
                    LayoutParameters = new LinearLayout.LayoutParams(LayoutParams.WrapContent, LayoutParams.WrapContent)
                };

                //Add title/subtitle to title view layout
                _titleViewLayout.AddView(_titleTextView);


                //Add title view layout to main layout
                _parentLayout.AddView(_titleViewLayout);

                //Add main layout to toolbar
                _toolbar.AddView(_parentLayout);

                _toolbar.ChildViewAdded += OnToolbarChildViewAdded;

                lastPage.PropertyChanged += LastPage_PropertyChanged;
            }
        }
예제 #2
0
 private IEnumerable <AV.View> GetChildrenViews()
 {
     foreach (var v in this.Element.Children)
     {
         var render = RendererFactory.GetRenderer(v);
         var c      = new AW.FrameLayout(this.Context);
         c.SetBackgroundColor(Color.Blue.ToAndroid());
         c.AddView(render.ViewGroup, LayoutParams.MatchParent, LayoutParams.MatchParent);
         yield return(c);
     }
 }
        void CreateDialog()
        {
            _picker          = new APicker(_context);
            _picker.MinValue = _min;
            _picker.MaxValue = _max;
            if (_NumberPickerCell.Number.HasValue)
            {
                _picker.Value = _NumberPickerCell.Number.Value;
            }

            if (!String.IsNullOrEmpty(_NumberPickerCell.Unit))
            {
                _picker.SetFormatter(new UnitFormatter(_NumberPickerCell.Unit));
                ApplyInitialFormattingBugfix(_picker);
            }

            if (_dialog == null)
            {
                using (var builder = new AlertDialog.Builder(_context)) {
                    builder.SetTitle(_title);

                    Android.Widget.FrameLayout parent = new Android.Widget.FrameLayout(_context);
                    parent.AddView(_picker, new Android.Widget.FrameLayout.LayoutParams(
                                       ViewGroup.LayoutParams.WrapContent,
                                       ViewGroup.LayoutParams.WrapContent,
                                       GravityFlags.Center));
                    builder.SetView(parent);


                    builder.SetNegativeButton(global::Android.Resource.String.Cancel, (o, args) =>
                    {
                        ClearFocus();
                    });
                    builder.SetPositiveButton(global::Android.Resource.String.Ok, (o, args) =>
                    {
                        _NumberPickerCell.Number = _picker.Value;
                        _command?.Execute(_picker.Value);
                        ClearFocus();
                    });

                    _dialog = builder.Create();
                }
                _dialog.SetCanceledOnTouchOutside(true);
                _dialog.DismissEvent += (ss, ee) =>
                {
                    DestroyDialog();
                };

                _dialog.Show();
            }
        }
예제 #4
0
        private void SetItems(int width, int height)
        {
            this.Container.RemoveAllViewsInLayout();
            //Form 中的大小转换到 Android 下, 要跟据 密度(Density) 转换, 最终结果可能并不是 Form 中指定的
            //var density = this.Context.Resources.DisplayMetrics.Density;
            //var w = this.Element.WidthRequest * density;
            //var h = this.Element.HeightRequest * density;

            foreach (var v in this.Element.Children)
            {
                var render = RendererFactory.GetRenderer(v);

                var c = new Android.Widget.FrameLayout(this.Context);
                c.SetBackgroundColor(Color.Blue.ToAndroid());
                c.AddView(render.ViewGroup);
                this.Container.AddView(c, width, height);
            }
            this.Count = this.Element.Children.Count();
        }
예제 #5
0
        protected override void OnElementChanged(ElementChangedEventArgs <Overlay> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement != null)
            {
                this.Pop        = new PopupWindow(this.Context);
                this.Pop.Height = ViewGroup.LayoutParams.MatchParent;
                this.Pop.Width  = ViewGroup.LayoutParams.MatchParent;

                this.Frame = new AW.FrameLayout(this.Context);
                this.Frame.SetBackgroundColor(this.Element.MaskColor.ToAndroid());


                this.Pop.ContentView = this.Frame;
                this.Pop.Focusable   = true;

                this.UpdateVisible();
                this.UpdateContent();
            }
        }
예제 #6
0
 private IEnumerable <AV.View> GetChildrenViews()
 {
     if (this.Element != null)
     {
         foreach (var v in this.Element.Children)
         {
             //var render = RendererFactory.GetRenderer(v);
             var render = v.GetOrCreateRenderer(); //Platform.CreateRenderer(v);
             if (render.ViewGroup.Parent == null)
             {
                 var c = new AW.FrameLayout(this.Context);
                 //c.SetBackgroundColor(Color.Blue.ToAndroid());
                 c.AddView(render.ViewGroup, LayoutParams.MatchParent, LayoutParams.MatchParent);
                 yield return(c);
             }
             else
             {
                 yield return((AV.View)render.ViewGroup.Parent);
             }
         }
     }
 }
예제 #7
0
        private void CreateFragments(string fileName = null) // по умолчанию файл не определен
        {
            mFragmentContainer = FindViewById <Widgets.FrameLayout>(Resource.Id.fragmentContainer);

            mFragment_local   = new Fragment_Local();
            mFragment_recent  = new Fragment_Recent();
            mFragment_about   = new Fragment_About();
            mFragment_profile = new Fragment_Profile();
            mFragment_storage = new Fragment_Storage();

            if (!string.IsNullOrEmpty(fileName))
            {
                mFragment_local.fileName = fileName;
            }

            mStackFragments = new Stack <SupportFragment>();

            var trans = SupportFragmentManager.BeginTransaction();

            trans.Add(Resource.Id.fragmentContainer, mFragment_about, "mFragment_about");
            trans.Hide(mFragment_about);

            trans.Add(Resource.Id.fragmentContainer, mFragment_profile, "mFragment_profile");
            trans.Hide(mFragment_profile);

            trans.Add(Resource.Id.fragmentContainer, mFragment_storage, "mFragment_storage");
            trans.Hide(mFragment_storage);

            trans.Add(Resource.Id.fragmentContainer, mFragment_local, "mFragment_local");
            trans.Hide(mFragment_local);

            trans.Add(Resource.Id.fragmentContainer, mFragment_recent, "mFragment_recent");
            trans.Commit();

            mCurrentFragment = mFragment_recent;
        }
 public ContainerOnLayoutChangeListener(Android.Widget.FrameLayout layout)
 {
     _layout = layout;
 }
예제 #9
0
 protected AndroidDockContainer()
 {
     frame = new aw.FrameLayout(a.App.Application.Context);
 }
예제 #10
0
 protected AndroidPanel()
 {
     frame = new aw.FrameLayout(a.App.Application.Context);
 }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            //	MenuItem item = menu.findItem(R.id.addAction);
            // Set our view from the "main" layout resource
            this.SetContentView(Resource.Layout.Main);

            mToolbar = FindViewById <SupportToolbar>(Resource.Id.toolbar);

            //mToolbar.FindViewById<IMenuItem>(Resource.Id.action_sa
            mDrawerLayout        = FindViewById <Android.Support.V4.Widget.DrawerLayout>(Resource.Id.drawer_layout);
            mLeftDrawer          = FindViewById <Android.Widget.ListView>(Resource.Id.left_drawer);
            mFragmentContainer   = FindViewById <Android.Widget.FrameLayout>(Resource.Id.fragmentContainer);
            mFragmentListAnimals = new FragmentListAnimals();

            /*mFragmentListScience = new FragmentListScientists();
             * mFragmentAddScience = new FragmentAddScientist();
             * fragmentAddAnimal = new FragmentAddAnimal ();*/

            mStackFragments = new Stack <SupportFragment>();

            var trans = SupportFragmentManager.BeginTransaction();

            /*	trans.Add(Resource.Id.fragmentContainer, mFragmentAddScience, "Fragment3");
             *      trans.Hide(mFragmentAddScience);
             *
             *      trans.Add(Resource.Id.fragmentContainer, mFragmentListScience, "Fragment2");
             *      trans.Hide(mFragmentListScience);
             *      trans.Add(Resource.Id.fragmentContainer, mFragmentSetting, "FragmentSetting");
             *      trans.Hide (mFragmentSetting);
             *
             *
             *      trans.Add (Resource.Id.fragmentContainer, fragmentAddAnimal, "FragmentAnimal");*/
            mFragmentListScience = new FragmentListScientists();

            trans.Add(Resource.Id.fragmentContainer, mFragmentListAnimals, "FragmentListAnimals");
            trans.Commit();

            mCurrentFragment = mFragmentListAnimals;

            mLeftDrawer.Tag = 0;

            SetSupportActionBar(mToolbar);

            mLeftDataSet = new List <string>();
            mLeftDataSet.Add("Animals");
            mLeftDataSet.Add("Scientists");
            mLeftAdapter        = new Android.Widget.ArrayAdapter <string>(this, Android.Resource.Layout.SimpleListItem1, mLeftDataSet);
            mLeftDrawer.Adapter = mLeftAdapter;


            mDrawerToggle = new MyActionBarDrawerToggle(
                this,                                                           //Host Activity
                mDrawerLayout                                                   //DrawerLayout
                );

            mDrawerLayout.SetDrawerListener(mDrawerToggle);
            SupportActionBar.SetHomeButtonEnabled(true);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetDisplayShowTitleEnabled(true);
            mDrawerToggle.SyncState();

            //This is the first the time the activity is ran
            SupportActionBar.SetTitle(Resource.String.animals);

            mLeftDrawer.ItemClick += MLeftDrawer_ItemClick;

            InitBackgroundLocationManager();

            bundle = Intent.Extras;
            if (bundle != null)
            {
                var id = bundle.GetInt("id");
                if (id != null && id != 0)
                {
                    ShowFragment(ViewEnumeration.VIEW_DETAIL_ANIMAL, DataManager.Instance.GetAnimal(id));
                }
            }
        }
예제 #12
0
 protected AndroidWindow()
 {
     Control = new aw.FrameLayout(a.App.Application.Context);
 }