protected virtual IDisposable ToastAppCompat(AppCompatActivity activity, ToastConfig cfg)
        {
            Snackbar snackBar = null;

            activity.SafeRunOnUi(() =>
            {
                var view = activity.Window.DecorView.RootView.FindViewById(Android.Resource.Id.Content);
                var msg  = this.GetSnackbarText(cfg);

                snackBar = Snackbar.Make(
                    view,
                    msg,
                    (int)cfg.Duration.TotalMilliseconds
                    );
                if (cfg.BackgroundColor != null)
                {
                    snackBar.View.SetBackgroundColor(cfg.BackgroundColor.Value.ToNative());
                }

                if (cfg.Position == ToastPosition.Top)
                {
                    // watch for this to change in future support lib versions
                    var layoutParams = snackBar.View.LayoutParameters as FrameLayout.LayoutParams;
                    if (layoutParams != null)
                    {
                        layoutParams.Gravity = GravityFlags.Top;
                        layoutParams.SetMargins(0, 80, 0, 0);
                        snackBar.View.LayoutParameters = layoutParams;
                    }
                }
                if (cfg.Action != null)
                {
                    snackBar.SetAction(cfg.Action.Text, x =>
                    {
                        cfg.Action?.Action?.Invoke();
                        snackBar.Dismiss();
                    });
                    var color = cfg.Action.TextColor;
                    if (color != null)
                    {
                        snackBar.SetActionTextColor(color.Value.ToNative());
                    }
                }

                snackBar.Show();
            });
            return(new DisposableAction(() =>
            {
                if (snackBar.IsShown)
                {
                    activity.SafeRunOnUi(snackBar.Dismiss);
                }
            }));
        }
        protected virtual IDisposable ShowDialog <TFragment, TConfig>(AppCompatActivity activity, TConfig config) where TFragment : AbstractAppCompatDialogFragment <TConfig> where TConfig : class, new()
        {
            var frag = (TFragment)Activator.CreateInstance(typeof(TFragment));

            activity.SafeRunOnUi(() =>
            {
                frag.Config = config;
                frag.Show(activity.SupportFragmentManager, FragmentTag);
            });
            return(new DisposableAction(() =>
                                        activity.SafeRunOnUi(frag.Dismiss)
                                        ));
        }
示例#3
0
        protected virtual IDisposable ToastAppCompat(AppCompatActivity activity, ToastConfig cfg)
        {
            Snackbar snackBar = null;

            activity.SafeRunOnUi(() =>
            {
                var view = activity.Window.DecorView.RootView.FindViewById(Android.Resource.Id.Content);
                var msg  = this.GetSnackbarText(cfg);


                snackBar = Snackbar.Make(
                    view,
                    msg,
                    (int)cfg.Duration.TotalMilliseconds
                    );
                if (cfg.BackgroundColor != null)
                {
                    snackBar.View.SetBackgroundColor(cfg.BackgroundColor.Value.ToNative());
                }

                this.SetLayoutMargins(snackBar, cfg);

                if (cfg.Action != null)
                {
                    snackBar.SetAction(cfg.Action.Text, x =>
                    {
                        cfg.Action?.Action?.Invoke();
                        snackBar.Dismiss();
                    });
                    var color = cfg.Action.TextColor;
                    if (color != null)
                    {
                        snackBar.SetActionTextColor(color.Value.ToNative());
                    }
                }

                snackBar.Show();
            });
            return(new DisposableAction(() =>
            {
                if (snackBar.IsShown)
                {
                    activity.SafeRunOnUi(snackBar.Dismiss);
                }
            }));
        }