public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { //计算中点 centerY = Height / 2; //判断中点的有效性 if (centerY <= 0) { return; } //开始对当前显示的View进行缩放 for (int i = 0; i < visibleItemCount; i++) { //获取item View temp_view = GetChildAt(i); //计算item的中点Y坐标 float itemY = temp_view.Bottom - (temp_view.Height / 2); //计算离中点的距离 float distance = centerY; if (itemY > centerY) { distance = itemY - centerY; } else { distance = centerY - itemY; } //根据距离进行缩放 temp_view.ScaleY = (1.1f - (distance / centerY) < 0 ? 0 : 1.1f - (distance / centerY)); temp_view.ScaleX = (1.1f - (distance / centerY) < 0 ? 0 : 1.1f - (distance / centerY)); //根据距离改变透明度 temp_view.Alpha = (1.1f - (distance / centerY) < 0 ? 0 : 1.1f - (distance / centerY)); } }
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { var wasTracked = false; foreach (TrackElement t in _trackElements) { if (!wasTracked) { if (t.IsSafeToTrack(view)) { wasTracked = true; _contentOffset += t.GetDeltaY(); SendScrollEvent(_contentOffset); t.SyncState(view); } else { t.Reset(); t.SyncState(view); } } else { t.SyncState(view); } } }
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (!IsBuildingLayOut) { Element?.OnScrolling(this, EventArgs.Empty); } }
public static void MakeFlingAware(this AbsListView list) { list.SetOnScrollListener(new ScrollChangedListener((view, state) => { (view.Adapter as IFlingAwareAdapter).FlingScrollActive = state == ScrollState.Fling; })); }
public void OnScrollStateChanged(AbsListView view, [GeneratedEnum] ScrollState scrollState) { if (scrollState == 0) { // stopped } if (processingSwipe == false) { processingSwipe = true; if (lw.Id == view.Id) { var yPosition = GetYPosition(); int currentFirstVisibleItem = lw.FirstVisiblePosition; if (currentFirstVisibleItem > mLastFirstVisibleItem) { //Down Source.FireTopSwipe(CustomListview.Swipe.DownSwipe, yPosition, currentFirstVisibleItem); } else if (currentFirstVisibleItem < mLastFirstVisibleItem) { // Up Source.FireTopSwipe(CustomListview.Swipe.UpSwipe, yPosition, currentFirstVisibleItem); } mLastFirstVisibleItem = currentFirstVisibleItem; } processingSwipe = false; } }
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (CanLoad) { LoadData(); } }
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // If the total item count is zero and the previous isn't, assume the // list is invalidated and should be reset back to initial state if (totalItemCount < previousTotalItemCount) { this.currentPage = this.startingPageIndex; this.previousTotalItemCount = totalItemCount; if (totalItemCount == 0) { this.loading = true; } } // If it's still loading, we check to see if the dataset count has // changed, if so we conclude it has finished loading and update the current page // number and total item count. if (loading && (totalItemCount > previousTotalItemCount)) { loading = false; previousTotalItemCount = totalItemCount; currentPage++; } // If it isn't currently loading, we check to see if we have breached // the visibleThreshold and need to reload more data. // If we do need to reload some more data, we execute onLoadMore to fetch the data. if (!loading && (firstVisibleItem + visibleItemCount + visibleThreshold) >= totalItemCount) { loading = onLoadMore(currentPage + 1, totalItemCount); } }
/// <summary> /// Callback method to be invoked while the list view or grid view is being scrolled. /// If the view is being scrolled, this method will be called before the next frame of the scroll is rendered. /// In particular, it will be called before any calls to getView(int, View, ViewGroup) /// </summary> /// <param name="view">The view whose scroll state is being reported</param> /// <param name="scrollState">The current scroll state. One of SCROLL_STATE_TOUCH_SCROLL or SCROLL_STATE_IDLE</param> public void OnScrollStateChanged(AbsListView view, ScrollState scrollState) { if (this.BottomToolbar == null) { return; } if (scrollState == ScrollState.TouchScroll || scrollState == ScrollState.Fling) { this.BottomToolbar.Animate().Cancel(); this.BottomToolbar.Animate().TranslationYBy(150); } else { if (this.IsLastItemVisible && this.LastItemIsAtBottom) { this.BottomToolbar.Animate().Cancel(); this.BottomToolbar.Animate().TranslationYBy(150); } else { int initPosY = this.BottomToolbar.ScrollY; this.BottomToolbar.Animate().Cancel(); this.BottomToolbar.Animate().TranslationY(initPosY); } } }
/// <summary> /// Called when the scroll has started or stopped. /// Pass this on to all the listeners /// </summary> /// <param name="view"></param> /// <param name="scrollState"></param> public void OnScrollStateChanged(AbsListView view, [GeneratedEnum] ScrollState scrollState) { foreach (AbsListView.IOnScrollListener onScrollListener in listeners) { onScrollListener.OnScrollStateChanged(view, scrollState); } }
public void OnScroll(AbsListView aView, int aFirstVisibleItem, int aVisibleItemCount, int aTotalItemCount) { lock (iLock) { iVisibleScrollRange = new ScrollRange(aFirstVisibleItem, aFirstVisibleItem + aVisibleItemCount); } }
public void OnScrollStateChanged(AbsListView view, [GeneratedEnum] ScrollState scrollState) //called when users starts or stops scrolling, and when scolling animation stops { if (scrollState == ScrollState.Idle) { currentLastVisibleItem = ChatMessageWindow.LastVisiblePosition; } }
public void SetFlinging(AbsListView aListView, bool aFlinging) { bool stateChanged = false; lock (iFlingingLists) { bool wasFlinging = iFlingingLists.Count != 0; if (aFlinging && !iFlingingLists.Contains(aListView)) { iFlingingLists.Add(aListView); } else if (!aFlinging && iFlingingLists.Contains(aListView)) { iFlingingLists.Remove(aListView); } bool isFlinging = iFlingingLists.Count != 0; if (wasFlinging && !isFlinging) { stateChanged = true; } else if (!wasFlinging && isFlinging) { stateChanged = true; } } if (stateChanged) { OnEventFlingStateChanged(); } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); myListView = FindViewById <AbsListView>(Resource.Id.myListView); items = new List <MyPerson>() { new MyPerson() { FirstName = "Pesho", LastName = "Peshev", Age = 20, Gender = "MALE" }, new MyPerson() { FirstName = "Gosho", LastName = "Goshov", Age = 18, Gender = "MALE" }, new MyPerson() { FirstName = "Tosho", LastName = "Toshov", Age = 25, Gender = "MALE" } }; MyListViewAdapter adapter = new MyListViewAdapter(this, items); }
void AbsListView.IOnScrollListener.OnScrollStateChanged ( AbsListView objectListView, [GeneratedEnum] ScrollState scrollState ) { }
//@Override public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { foreach (IOnScrollListener onScrollListener in mOnScrollListeners) { onScrollListener.OnScroll(view, firstVisibleItem, visibleItemCount, totalItemCount); } }
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { int lastVisibleItem = firstVisibleItem + visibleItemCount - 1; Android.Views.View child = null; if (firstVisibleItem != prevFirstVisibleItem) { child = super.GetChildAt(0); } if (prevLastVisibleItem != lastVisibleItem) { child = super.GetChildAt(super.ChildCount - 1); } if (child != null) { // Workaround to set newly scrolled items as valid drop targets child.Visibility = ViewStates.Invisible; child.Visibility = ViewStates.Visible; } prevLastVisibleItem = lastVisibleItem; prevFirstVisibleItem = firstVisibleItem; }
void AbsListView.IOnScrollListener.OnScrollStateChanged(AbsListView view, ScrollState scrollState) { if (scrollState == ScrollState.Idle) { UpdateChildrenControlPoints(0); } }
public void OnScrollStateChanged(AbsListView view, ScrollState scrollState) { if (super.isScrolling) { super.SmoothScrollBy(super.scrollBy, 0); } }
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (scrollFlag) { if (firstVisibleItem > lastVisibleItemPosition) { // Slippery //Up if (HomePage != null) { HomePage.ToggleFloatingActionButton = true; } } else if (firstVisibleItem < lastVisibleItemPosition) { // Sliding //down if (HomePage != null) { HomePage.ToggleFloatingActionButton = false; } } else { return; } lastVisibleItemPosition = firstVisibleItem; } }
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (view is PinnedHeaderListView) { ((PinnedHeaderListView)view).configureHeaderView(firstVisibleItem); } }
public void OnScrollStateChanged(AbsListView view, ScrollState scrollState) { if (Control == null) { return; } if (previousState != ScrollState.Idle && scrollState == ScrollState.Idle) { int count = view.ChildCount - 2; // visible views count int lastVisibleItemPosition = view.LastVisiblePosition - 2; if (view.FirstVisiblePosition == 0 && isScrollingUp) { BaseControl.OnScrolledTop(); } } //if (scrollState == ScrollState.Idle) if (!skipLastVisibleItem) { BaseControl.LastVisiblePosition = view.LastVisiblePosition - 2; } previousState = scrollState; }
public void OnScrollStateChanged(AbsListView listView, ScrollState scrollState) { CoreUtility.ExecuteMethod("OnScrollStateChanged", delegate() { if (this.ViewModel != null) { if (this.ViewModel.HasMoreData) { if (listView.LastVisiblePosition >= listView.Count - 1 - this.ViewModel.ScrollThresholdCount) { Container.Track.LogTrace("Getting more data"); this.ViewModel.DoGetMoreData(); // it has its own built-in skip mechanism } } int topRowVerticalPosition = 0; if (this.ListView != null && this.ListView.ChildCount > 0) { topRowVerticalPosition = this.ListView.GetChildAt(0).Top; } if (this.RefreshLayout != null) { this.RefreshLayout.Enabled = (topRowVerticalPosition >= 0); } } }); }
public static void MakeFlingAware(this AbsListView list, Action <bool> action) { list.SetOnScrollListener(new ScrollChangedListener((view, state) => { action.Invoke(state == ScrollState.Fling); })); }
public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { System.Diagnostics.Debug.WriteLine(firstVisibleItem); if (firstVisibleItem + visibleItemCount == totalItemCount) // Clear items, add from current half way to chunk size after last item, scroll back to old last item { var firstItem = adapter.GetItem(chunksize); adapter.Clear(); for (int i = 0; i < chunksize * 2; i++) { adapter.Add(firstItem.AddDays(i)); } adapter.NotifyDataSetChanged(); view.SetSelection(chunksize - visibleItemCount - 1); } else if (firstVisibleItem == 0) // Clear items, add from chunk size before first item, scroll back to old first item { var lastItem = adapter.GetItem(chunksize); adapter.Clear(); for (int i = chunksize * 2 - 1; i >= 0; i--) { adapter.Add(lastItem.AddDays(-i)); } adapter.NotifyDataSetChanged(); view.SetSelection(chunksize - 1); } }
public void OnScrollStateChanged(AbsListView view, ScrollState scrollState) { if (psl.mDelegateOnScrollListener != null) // delegate { psl.mDelegateOnScrollListener.OnScrollStateChanged(view, scrollState); } }
/// <summary> /// Bind this class to the goto top button in the parent view /// </summary> /// <param name="parentView"></param> /// <param name="listView"></param> public void BindControl(View parentView, AbsListView listView) { if (parentView != null) { fab = parentView.FindViewById <FloatingActionButton>(Resource.Id.goto_top_button); if (fab != null) { // Hide the button initially fab.Visibility = ViewStates.Gone; // Hook into the listview's scroll events listView.SetOnScrollListener(this); // Scroll back to the top when the button is clicked fab.Click += (sender, e) => { if (listView.FirstVisiblePosition > 20) { listView.SetSelection(20); } listView.SmoothScrollToPosition(0); }; } } else { fab = null; } }
public void OnScrollStateChanged(AbsListView view, ScrollState scrollState) { if (OnScrollListener != null) { OnScrollListener.OnScrollStateChanged(view, scrollState); } }
public static void MakeFlingAware(this AbsListView list, Action <bool> action) { list.SetOnScrollListener(new OnScrollListener(null, tuple => { action.Invoke(tuple.Item2 == ScrollState.Fling); })); }
public void OnScrollStateChanged(AbsListView view, [GeneratedEnum] ScrollState scrollState) { if (scrollState == ScrollState.Idle) { Element?.OnScrolled(this, EventArgs.Empty); } }
void IOnScrollListener.OnScrollStateChanged(AbsListView view, ScrollState scrollState) { if (_onScrollListener != null) { _onScrollListener.OnScrollStateChanged(view, scrollState); } }