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) )); }
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); } })); }