Articles of android coordinatorlayout

禁用工具栏滚动

我有当前的设置: 现在一切都按预期工作,如果我在包含片段的framelayout内滚动,工具栏会根据需要滑入和滑出 现在重点是, 如果我滚动位于framelayout侧面的NavView(并在r​​elativelayout内),我想禁用工具栏滑入和滑出 但无论我是否删除所有滚动行为,工具栏都会继续滑入和滑出(只有禁用它的方法是从appbarlayout中移除滚动标记,但禁止所有滑入和滑出tolbar) 请问我在这里错过了什么? 是不是应该将滚动事件传递给CoordinatorLayout的scolling行为?

CoordinatorLayout中的ViewPager意外收缩

在我在Android 5.1.1上运行的Android应用中,我使用带有TabLayout的Toolbar进行布局,下面是ViewPager 。 所有这些都放在CoordinatorLayout 。 在ViewPager的第一页是一个RecyclerView服务CardView项目。 我的问题是我的ViewPager不断resize,以便裁剪我的CardView列表项。 我的主要布局看起来基本上像这样: 我的ViewPager服务的第一个片段如下所示: 这会呈现如下所示的内容: 单击布局中的按钮时,我使用startActivityForResult来调用另一个活动,并且在返回到我的活动时, 有时突然我的列表被裁剪,以便只有第一个项目的一半可见: 在ViewPager水平滑动到另一个寻呼机然后返回后,问题就消失了,所以看起来似乎没有正确触发重新布局。 按HOME然后恢复我的活动并不能解决问题。 请注意,即使我没有以任何方式修改我的布局,也会发生这种情况,我只是从startActivityForResult调用返回。 是的,它有时只会发生……而且我没有运行的后台线程可以解释明显的随机行为。 起初我以为它已经缩小了RecyclerView ,但是使用HierarchyViewer我发现它实际上是整个ViewPager缩小到其原始高度的一半左右。 我试过各种各样的黑客来解决这个问题,包括在我的整个视图hiearchy上调用invalidate()和requestLayout() ,但似乎没有任何帮助(虽然刷到另一个页面并再次修复它)。 另外,那些不是我想要求解的那种解决方案……然后我尝试将我的ViewPager高度更改为wrap_content ,这实际上解决了这个特殊问题; 返回我的活动后,我的RecyclerView的第一个项目永远不会被裁剪,我可以向下滚动到其他项目。 但是,现在我的列表中的最后一项始终被裁剪,如此截图中可以看到列表一直滚动到底部: 由于我现在处于一个我不太了解正在发生的事情的地步,我需要一些帮助。 我应该将什么用作我的ViewPager的layout_height,以及 – 首先 – 为什么? 对我来说, match_parent是有道理的,但我该如何思考呢? 在使用match_parent ,我的观点是否有合理的理由被裁剪,或者我实际上遇到了ViewPager , RecyclerView和/或CoordinatorLayout ? 如何确保我的ViewPager始终填充AppBar下方的整个屏幕区域,并且我的RecyclerView可以垂直滚动以正确呈现所有CardView列表项?

使用CollapsingToolbarLayout的CoordinatorLayout在Dialog片段中使用Keyboard打破

我最近决定将我的应用程序移动到使用新的支持设计库,最近发现了一个非常讨厌的错误。 假设我有一个主持AppBarLayout和任何可滚动视图的CoordinatorLayout,无论是ViewPager,NestedScrollView,还是具有所需滚动行为的RecyclerView; 选择显示一个显示键盘的对话框片段会导致AppBarLayout与滚动视图断开连接,并且它们不再滚动在一起。 此外,滚动视图被强制调整到底部屏幕的一半,而AppBar布局占据了上半部分,尽管它不需要它。 这个bug的video在这里: Youtube Link 编辑: 将Activity中键盘的softInputMode设置为“adjustPan”可以解决问题。 显然,CoordinatorLayout不喜欢通过键盘动态resize。 违规的XML看起来像这样,但我有多个XML变体表现出这种行为,其中的共同元素都是他们使用的是CollapsingToolbarLayout:

CoordinatorLayout与RecyclerView和底部固定的EditText

我正在开发一个聊天屏幕。 它包括用于用户个人资料图像的CollapsingToolbarLayout,用于消息列表的RecyclerView和用于发送消息的编辑框。 我无法弄清楚是否可以将编辑框固定到底部屏幕并防止它与屏幕的其余部分滚动? 如果我在一个垂直的LinearLayout中包装CoordinatorLayout并将EditText放在CoordinatorLayout之外,我几乎达到了我想要的效果。 但是,在这种情况下,键盘行为与RecyclerView分离 – 当您打开键盘时,它不会向上/向下滚动。 如果我尝试将EditText放在CoordinatorLayout中,它会滚出屏幕,我不知道是否需要为它设置任何特殊的行为 我的布局

检测AppBarLayout / CollapsingToolbarLayout何时完全展开

我有一个使用新的CoordinatorLayout / AppBarLayout / CollapsingToolbarLayout范例的片段,我希望能够检测到折叠工具栏何时完全展开,以便我可以对它所在的整个片段执行操作,例如popup片段离开堆栈并转向新的,解散片段。 我有解雇代码工作,我只需要知道何时何时不使用它。 我已经用AppBarLayout.OnOffsetChangedListener进行了一些实验,但没有太多运气。 有没有办法用它来确定什么时候完全扩展,或者是否有人知道更优选的方法? 提前致谢! 编辑:我也看到有一些AppBarLayout.setExpanded(…)的实现 ,但不是AppBarLayout.getExpanded()或类似的东西,所以我也被困在那里。

Android工具栏和用户图像animation就像Twitter一样

我正在尝试实现工具栏和用户图像animation,就像在Twitter的用户配置文件中使用的那样。 我尝试了很多东西但是我无法快速将屏幕顶部的折叠工具栏固定在展开时的一些背景上,并使用户图像首先位于工具栏上方,然后缩小并向下移动滚动时的工具栏。 twitter如何在用户个人资料图片中产生流畅的效果? 他们如何首先在工具栏前面放置这个图像,然后在滚动时落后并在工具栏下方实现平滑效果? 我尝试了以下所有方案: 使用CollapseParallaxMultiplier进行视差效果的工具栏。 Pin Toolbar设置高度100dp和minHeight?attr / actionBarSize。 2个工具栏,一个带有图像背景,另一个带有透明背景色。 Scalling UserImage然后移动Y位置(无法实现在滚动时在工具栏下方发送用户图像的效果)。 以前的方案都不适合我。 XML层次结构: 附上您可以看到Twitter对用户个人资料活动的影响。

在CollapsingToolbarLayout中添加带标题的图标

我正在使用CoordinatorLayout来获得此效果: 这是布局代码: 这是我得到的输出如何使用带有标题文本的图标?

当EditText聚焦时,CollapsingToolbarLayout不会折叠

我在CoordinatorLayout使用CollapsingToolBar ,我的NestScrollView包含一些EditText作为子视图。 我面临的是当edittext聚焦并且keybaoard出现时我的完整视图没有向上滚动。 下面是代码和图像作为该布局的输出。

如何禁用CoordinatorLayout中的AppBarLayout滚动?

我在MapFragment有MapFragment和视差效果: 我想在AppBarLayout上禁用滚动,因为无法在地图上移动,因为地图上的触摸偶数总是作为滚动事件处理。 我想通过仅滚动RecyclerView来处理AppBarLayout的折叠,它位于屏幕的底部。 这是我的xml: 感谢您的答复。

如何将RecyclerView放在工具栏下方以及TabLayout和ViewPager之上还以自定义方式处理对滚动的响应?

我想创建一个如下图所示的布局: CoordinatorLayout包含: CollapsingToolbarLayout(包含ImageView和工具栏) RecyclerView TabLayout ViewPager(它的每个片段都包含一个RecyclerView) 我想以这种方式回应滚动事件: CollapsingToolbarLayout通过滚动展开和折叠 工具栏顶到顶部,直到TabLayout到达顶部 在该工具栏向上滚动并且TabLayout坚持到顶部 我在CollapsingToolbarLayout和TabLayout之间使用RecyclerView时遇到问题。 我可以在没有RecyclerView的情况下实现这种布局(我将CollapsingToolbarLayout和TabLayout放在AppBarLayout中,将ViewPager放在它外面,在CoordinatorLayout内)。 我的问题: 我应该把RecyclerView放在哪里? 我应该为每个布局设置layout_scrollFlags和layout_behavior哪个&哪里? 似乎AppBarLayout的高度有限。 当我将RecyclerView放在AppBarLayout中时,只有RecyclerView的一部分可见,并且TabLayout也会消失。 我阅读了很多像这样的教程和许多像这一个和这个的问题,但是没有它们对我有帮助。