protected override void OnElementChanged(ElementChangedEventArgs <ListView> e) { base.OnElementChanged(e); if (e.OldElement != null) { ((IListViewController)e.OldElement).ScrollToRequested -= OnScrollToRequested; if (_adapter != null) { // Unhook the adapter from the ListView before disposing of it if (Control != null) { Control.Adapter = null; } _adapter.Dispose(); _adapter = null; } } if (e.NewElement != null) { AListView nativeListView = Control; if (nativeListView == null) { var ctx = Context; nativeListView = CreateNativeControl(); _refresh = CreateNativePullToRefresh(ctx); _refresh.SetOnRefreshListener(this); _refresh.AddView(nativeListView, new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent)); SetNativeControl(nativeListView, _refresh); _headerView = new Container(ctx); nativeListView.AddHeaderView(_headerView, null, false); _footerView = new Container(ctx); nativeListView.AddFooterView(_footerView, null, false); } ((IListViewController)e.NewElement).ScrollToRequested += OnScrollToRequested; nativeListView.DividerHeight = 0; nativeListView.Focusable = false; nativeListView.DescendantFocusability = DescendantFocusability.AfterDescendants; nativeListView.OnFocusChangeListener = this; nativeListView.Adapter = _adapter = e.NewElement.IsGroupingEnabled && e.NewElement.OnThisPlatform().IsFastScrollEnabled() ? new GroupedListViewAdapter(Context, nativeListView, e.NewElement) : new ListViewAdapter(Context, nativeListView, e.NewElement); _adapter.HeaderView = _headerView; _adapter.FooterView = _footerView; _adapter.IsAttachedToWindow = _isAttached; UpdateHeader(); UpdateFooter(); UpdateIsSwipeToRefreshEnabled(); UpdateFastScrollEnabled(); UpdateSelectionMode(); UpdateSpinnerColor(); UpdateHorizontalScrollBarVisibility(); UpdateVerticalScrollBarVisibility(); } }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { RefreshLayout = new SwipeRefreshLayout(Activity) { LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent) }; ListView = new ListView(Activity) { LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent) }; RefreshLayout.AddView(ListView); _adapter = new List.SmartListAdapter <T>(this); _adapter.ItemSelected += OnItemSelected; ListView.Adapter = _adapter; RefreshLayout.Refresh += OnRefresh; return(RefreshLayout); }
protected override void OnElementChanged(ElementChangedEventArgs <ListView> e) { base.OnElementChanged(e); if (e.OldElement != null) { ((IListViewController)e.OldElement).ScrollToRequested -= OnScrollToRequested; if (_adapter != null) { _adapter.Dispose(); _adapter = null; } } if (e.NewElement != null) { AListView nativeListView = Control; if (nativeListView == null) { var ctx = Context; nativeListView = new AListView(ctx); _refresh = new SwipeRefreshLayout(ctx); _refresh.SetOnRefreshListener(this); _refresh.AddView(nativeListView, LayoutParams.MatchParent); SetNativeControl(nativeListView, _refresh); _headerView = new Container(ctx); nativeListView.AddHeaderView(_headerView, null, false); _footerView = new Container(ctx); nativeListView.AddFooterView(_footerView, null, false); } ((IListViewController)e.NewElement).ScrollToRequested += OnScrollToRequested; nativeListView.DividerHeight = 0; nativeListView.Focusable = false; nativeListView.DescendantFocusability = DescendantFocusability.AfterDescendants; nativeListView.OnFocusChangeListener = this; nativeListView.Adapter = _adapter = new ListViewAdapter(Context, nativeListView, e.NewElement); _adapter.HeaderView = _headerView; _adapter.FooterView = _footerView; _adapter.IsAttachedToWindow = _isAttached; UpdateHeader(); UpdateFooter(); UpdateIsSwipeToRefreshEnabled(); UpdateIsRefreshing(); } }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup listContainer = (ViewGroup)base.OnCreateView(inflater, container, savedInstanceState); SwipeRefreshLayout srl = new SwipeRefreshLayout(inflater.Context); srl.AddView(listContainer, ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); srl.LayoutParameters = ( new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent)); _si = new Scrollinput(srl); srl.Refresh += async delegate { await GetData(ListView, ((MainActivity)Activity).Ctrl); srl.Refreshing = false; }; return(srl); }
protected override void OnElementChanged(ElementChangedEventArgs <CollectionView> e) { base.OnElementChanged(e); if (e.NewElement != null) { if (RecyclerView == null) { RecyclerView = new RecyclerView(Context); _refresh = new SwipeRefreshLayout(Context); _refresh.SetOnRefreshListener(this); _refresh.AddView(RecyclerView, LayoutParams.MatchParent, LayoutParams.MatchParent); SetNativeControl(_refresh); } LayoutManager = new GridLayoutManager(Context, 2); _spanSizeLookup = new CollectionViewSpanSizeLookup(this); _gridLayoutManager.SetSpanSizeLookup(_spanSizeLookup); RecyclerView.Focusable = false; RecyclerView.DescendantFocusability = Android.Views.DescendantFocusability.AfterDescendants; RecyclerView.OnFocusChangeListener = this; RecyclerView.SetClipToPadding(false); _itemDecoration = new GridCollectionItemDecoration(this); RecyclerView.AddItemDecoration(_itemDecoration); Adapter = new CollectionViewAdapter(Context, _gridCollectionView, RecyclerView, this); RecyclerView.SetAdapter(Adapter); RecyclerView.SetLayoutManager(_gridLayoutManager); Adapter.IsAttachedToWindow = IsAttached; UpdateGroupHeaderHeight(); UpdatePullToRefreshEnabled(); UpdatePullToRefreshColor(); } }
void InitializeView() { var linearLayout = new LinearLayout(this); linearLayout.LayoutParameters = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent ); linearLayout.Orientation = Orientation.Vertical; _toolbar = new Toolbar(this); _toolbar.Title = "Weather"; _toolbar.SetTitleTextColor(Android.Graphics.Color.DodgerBlue); _toolbar.SetBackgroundColor(Android.Graphics.Color.WhiteSmoke); _toolbar.LayoutParameters = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent ); linearLayout.AddView(_toolbar); SetSupportActionBar(_toolbar); SupportActionBar.SetDisplayShowTitleEnabled(true); _refreshLayout = new SwipeRefreshLayout(this); _refreshLayout.LayoutParameters = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent ); _listView = new ListView(this); _listView.LayoutParameters = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent ); _listView.ChoiceMode = ChoiceMode.Single; _refreshLayout.AddView(_listView); linearLayout.AddView(_refreshLayout); SetContentView(linearLayout); }
void UpdateContent() { if (_renderer != null) { _renderer.View.RemoveFromParent(); _renderer.Dispose(); _renderer = null; } if (RefreshView.Content != null) { _renderer = Platform.CreateRenderer(RefreshView.Content, Context); Platform.SetRenderer(RefreshView.Content, _renderer); if (_renderer.View.Parent != null) { _renderer.View.RemoveFromParent(); } using (var layoutParams = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent)) SwipeRefreshLayout.AddView(_renderer.View, layoutParams); } }
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup listContainer = (ViewGroup)base.OnCreateView(inflater, container, savedInstanceState); TextView proj = new TextView(inflater.Context); proj.Gravity = GravityFlags.Center; ComplexUnitType ct = ComplexUnitType.Dip; proj.SetTextSize(ct, 20); proj.Text = _projectName; SwipeRefreshLayout srl = new SwipeRefreshLayout(inflater.Context); srl.AddView(listContainer, ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); srl.LayoutParameters = ( new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent)); LinearLayout ll = new LinearLayout(inflater.Context); ll.Orientation = Orientation.Vertical; LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent); lp2.Gravity = GravityFlags.Center; proj.LayoutParameters = lp2; View ruler = new View(inflater.Context); ruler.SetBackgroundColor(Color.Gray); ll.AddView(proj); ll.AddView(ruler, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, 2)); ll.AddView(srl); _si = new ListOfProjects.Scrollinput(srl); srl.Refresh += async delegate { try { await AddData(((MainActivity)Activity).Ctrl, _projectId); srl.Refreshing = false; } catch (CannotReachServerException) { AlertDialog.Builder builder = new AlertDialog.Builder(Activity); builder.SetTitle("Unable to Connect") .SetMessage("Please check your network connection and try again") .SetNeutralButton("Okay", (sender, args) => { builder.Dispose(); }) .SetCancelable(false); AlertDialog alert = builder.Create(); alert.Show(); } catch (StatusNotOkayException se) { AlertDialog.Builder builder = new AlertDialog.Builder(Activity); builder.SetTitle("An Error has occured") .SetMessage("Error :" + se.GetMessage()) .SetNeutralButton("Okay", (sender, args) => { builder.Dispose(); }) .SetCancelable(false); AlertDialog alert = builder.Create(); alert.Show(); } catch (Exception e) { // For any other weird exceptions AlertDialog.Builder builder = new AlertDialog.Builder(Activity); builder.SetTitle("An Error has occured") .SetNeutralButton("Okay", (sender, args) => { builder.Dispose(); }) .SetMessage("Error :" + e.Message) .SetCancelable(false); AlertDialog alert = builder.Create(); alert.Show(); } }; return(ll); }
protected override void OnElementChanged(ElementChangedEventArgs <WebviewContainer> e) { base.OnElementChanged(e); if (e.OldElement != null) { System.Diagnostics.Debug.WriteLine("WebViewRenderer DISPOSE"); } if (e.NewElement != null) { WebViewer = (e.NewElement as WebviewContainer).WebViewer; WebViewer.OnRotate += WebViewer_OnRotate; webViewDelegate = new WebViewDelegate(this); webChromeDelegate = new WebChromeDelegate(this); Native = new WebView(this.Context); Native.SetWebViewClient(webViewDelegate); Native.SetWebChromeClient(webChromeDelegate); if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat) { Native.SetLayerType(LayerType.Hardware, null); } else { Native.SetLayerType(LayerType.Software, null); } Native.Settings.JavaScriptEnabled = true; Native.Settings.JavaScriptCanOpenWindowsAutomatically = true; Native.Settings.AllowFileAccess = true; Native.Settings.DomStorageEnabled = true; Native.Settings.DatabaseEnabled = true; Native.Settings.AllowFileAccess = true; Native.DrawingCacheEnabled = true; Native.Settings.MediaPlaybackRequiresUserGesture = false; Native.Settings.LoadWithOverviewMode = true; Native.Settings.UseWideViewPort = true; Native.Settings.BuiltInZoomControls = false; Native.Settings.LoadWithOverviewMode = true; //Native.Settings.MixedContentMode = MixedContentHandling.AlwaysAllow; Native.ScrollBarStyle = ScrollbarStyles.OutsideOverlay; Native.ScrollbarFadingEnabled = true; Native.Settings.SetLayoutAlgorithm(WebSettings.LayoutAlgorithm.SingleColumn); Native.Settings.SetAppCacheEnabled(true); Native.Settings.SetAppCacheMaxSize(1024 * 1024 * 32); Native.Settings.SetAppCachePath(MainActivity.Instance.CacheDir.AbsolutePath); Native.Settings.SetGeolocationEnabled(true); Native.LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent); WebViewer.BaseUrl = WebViewer.Uri; //refreshControl = new CustomRefreshControl(this.Context, Native); RefreshControl = new SwipeRefreshLayout(this.Context); RefreshControl.LayoutParameters = new LayoutParams(LayoutParams.MatchParent, LayoutParams.MatchParent); RefreshControl.SetBackgroundColor(Color.Transparent); RefreshControl.Refresh += RefreshControlRefresh; if (Native.Parent == null) { RefreshControl.AddView(Native); } //RefreshControl.SetDistanceToTriggerSync(50); RefreshControl.AddView(new LoadingOverlay(MainActivity.Instance.ApplicationContext, false, WebViewer.Orientation)); SetNativeControl(RefreshControl); if (string.IsNullOrEmpty(homeUrl)) { homeUrl = WebViewer.Uri; } WebViewer.PropertyChanged += (sender, ea) => { if (ea.PropertyName == "Action") { switch (WebViewer.Action) { case "GoHome": GoHome(WebViewer.NeedCheckEtag); break; } WebViewer.Action = string.Empty; } else if (ea.PropertyName == "Uri") { LoadUrl(); } }; LoadUrl(); } }