根据Building a RecolyerView LayoutManager文章,我已经为RecolyerView创建了自己的自定义布局管理器,但是由于现有的一些文档,我无法找到从布局管理器中强制RecolyView重建动画的方法(就像使用notifyItemInserted或notifyItemDeleted时的动画一样)。这些动画由recyclerView及其项目动画师控制,开发人员只能控制项目的位置。因此,我有一个fill
方法,它根据当前滚动位置和布局管理器的状态来放置子视图。这样的方法从两个地方调用,
> onLayoutChildren中的
(当布局管理器执行项的初始化放置或数据集更改时,将调用此方法)
@Override
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
detachAndScrapAttachedViews(recycler);
fill(recycler);
}
垂直滚动
/** calculate offset of views while scrolling, layout items on new places*/
@Override
public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state) {
dy = scrollVerticallyInternal(dy);
offsetChildrenVertical(-dy);
if (condition) {
//todo refactor it, blinking now without animation.
detachAndScrapAttachedViews(recycler);
}
fill(recycler);
return dy;
}
我希望在某些条件
的情况下,对某些视图执行稍微复杂一点的转换并使用动画。
如果以某种方式启动布局子流,就可能达到此目的,这时RecyclerView将调用OnLayoutChildres
方法。
我可以使用DetachandScrattachedViews(Recyclerer)
并启动OnLayoutChildres
并运行默认的Fill
进程,但这种转换将立即执行,而不需要任何动画。
是否可以从布局管理器中强制recyclerView(或布局管理器)运行其动画?
当我们实现了自定义LayoutManager之后,我们还为ExpandLayoutManager制作了自己的动画。特别是,我们使用了ValueAnimator来动画LayoutManager外观的更改。如果您对我们的ExpandLayoutManager感到好奇,那么它可以在GitHub上使用。
在这里您还可以找到一些创建自定义LayoutManager的有价值的细节:http://cases.azoft.com/create-custom-layoutManager-android/
要使用自定义的布局管理器,我们可以重新实现 addItem(), sizeHint(), setGeometry(), itemAt() 和 takeAt()这些方法。为了确保当应用程序界面的空间非常小时,布局大小不会为 0,我们需要重载 minimumSize()方 法。日常中我们也经常看到这样的情形,即应用程序窗口的长和宽的尺寸是互为依存的,那 么我们就需要重载 hasHeightForWid
我需要用动画更改RecyclerView的GridLayoutManager跨距计数,但当用户在RecyclerView布局上做出收缩或缩放手势时,我需要这样做。动画应缓慢且持续地跟随用户的手势,直到用户从屏幕上松开手指。
我正在建立一个应用程序,出版商在那里上传问题到数据库。发布者可以添加他们想要的任何问题,所以我使用了一个回收器视图来处理这个问题。当publisher单击按钮添加问题时,将按照我的recyclerview适配器中指定的方式膨胀新的布局。TopicQuestionsAdapter是回收器视图适配器的名称 现在,回收器视图布局由四个FABs组成,用于添加不同类型的问题和选项,一个textview和一个
我一直在尝试使用此处的少量指导来实现带有RecyclerView的CollapsingToolbar:http://android-developers.blogspot.co.uk/2015/05/android-design-support-library.html 和这里的项目:https://github.com/chrisbanes/cheesesquare,我目前有以下布局: 来源如下
当点击fab时,snack bar出现,为此我必须使用协调器布局将fab水平移动到snack bar上方。但现在回收器视图的前几个项目是不可见的。它只从项目3开始。能否有人帮助解决这一点和什么改变要做。提前谢谢!!
我有一个父回收器视图,其中包含一个水平回收器视图作为其项目。在其中,我将显示分类视频。当我开始滚动水平回收器视图时,应用程序崩溃。 错误是: 我的代码是category类 垂直适配器 水平适配器