Я создал представление, которое я хочу использовать в качестве сообщения об ошибке.Android View (Dialog/Layout) в нескольких действиях
Если телефон не подключен к Интернету (мобильные данные или Wi-Fi), я хочу показать сообщение об ошибке в своем приложении, чтобы пользователь знал, что все с этого момента будет локально сохранено (а не на сервере).
Проблема в том, что я хочу, чтобы это сообщение не спалось, даже когда пользователь перешел от одной активности к другой.
Я попытался использовать диалог и LinearLayout на WindowManager. Не работает.
Это то, что я сделал.
public void noConnectionLayout()
{
LinearLayout mainLayout = new LinearLayout (this.ApplicationContext);
mainLayout.Clickable = false;
mainLayout.Focusable = false;
mainLayout.FocusableInTouchMode = false;
mainLayout.LongClickable = false;
mainLayout.SetBackgroundColor (Android.Graphics.Color.Red);
mainLayout.Orientation = Orientation.Vertical;
var spaceFromTopPara = (int) (65 * this.Resources.DisplayMetrics.Density);
var layoutHeight = (int)(25 * this.Resources.DisplayMetrics.Density);
WindowManagerLayoutParams windowLayoutParams = new WindowManagerLayoutParams (
ViewGroup.LayoutParams.MatchParent,
layoutHeight,
WindowManagerTypes.SystemError,
WindowManagerFlags.NotTouchModal | WindowManagerFlags.NotFocusable,
Format.Translucent);
windowLayoutParams.ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait;
windowLayoutParams.Gravity = GravityFlags.Top;
windowLayoutParams.Y = spaceFromTopPara;
TextView textNoConnectionMesg = new TextView (this);
textNoConnectionMesg.Text = "No Connection available.";
textNoConnectionMesg.SetTypeface (this.latoFont, TypefaceStyle.Normal);
textNoConnectionMesg.LayoutParameters = new ViewGroup.LayoutParams (ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent);
textNoConnectionMesg.Gravity = GravityFlags.Center;
textNoConnectionMesg.SetTextSize (Android.Util.ComplexUnitType.Dip, 14f);
textNoConnectionMesg.SetBackgroundColor (Android.Graphics.Color.Transparent);
textNoConnectionMesg.SetTextColor (Android.Graphics.Color.White);
mainLayout.AddView (textNoConnectionMesg);
WindowManager.AddView (mainLayout, windowLayoutParams);
}
Когда активность меняется, вид просто уходит.
Что я могу сделать здесь?
Спасибо за ваше время.
Один из способов - передать сообщение новому действию и воссоздать представление. – Simar