Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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();
            }
        }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 8
0
        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();
            }
        }