Articles of android coordinatorlayout

在CoordinatorLayout中平移谷歌地图会导致recyclerview在Android设计支持库23.0.1中滚动

该地图位于collapsingToolbarLayout中,该套接字嵌套在appBarLayout中。 在Android设计支持库的22.2.0和22.2.1版本中,我可以独立于coordinatorLayout平移地图,但在23.0.1中,如果我尝试在北/南轴上平移地图,则会导致recyclelerview向上/向下滚动。 这是一个错误还是有办法将触摸事件从appBarLayout传递到mapFragment?

在FloatingActionButton上运行时设置layout_anchor

我正在尝试animation一个固定到我的AppBarLayout的android.support.design.widget.FloatingActionButton。 我可以在布局xml中设置好,它显示正常。 但是,我正在对此布局执行共享元素转换,并且在设置视图之前FAB正在显示。 我尝试将可见性设置为GONE和INVISIBLE但是如果layout_anchor在布局xml中设置,它们似乎被忽略了。 有没有办法解决? 我希望活动加载共享元素转换然后淡入我的FAB。 我只是无法在加载时隐藏FAB。 我可以在不使用layout_anchor的情况下完成它,但如果可能的话,我更愿意保留它。

隐藏AppBarLayout并将其空间分配给剩余视图

我使用新的设计库有一个非常标准的布局: 我想要做的是以编程方式完全隐藏整个AppBarLayout ,暂时摆脱Toolbar及其折叠function。 所以我称之为: private void disableCollapsing() { AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) collapsingToolbarLayout.getLayoutParams(); p.setScrollFlags(0); collapsingToolbarLayout.setLayoutParams(p); } 禁用折叠行为(效果很好),最后这个: @Override public void hide() { final AppBarLayout layout = (AppBarLayout) findViewById(R.id.appbar); layout.animate().translationY(-layout.getHeight()) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); layout.setVisibility(View.GONE); } }).start(); } 我将AppBarLayout转换为顶部(工作顺利),并在animation集的末尾显示View.GONE 。 问题 在animation结束时,无论我是否也将可见性设置为GONE,我都无法获得以前被AppBarLayout占用的AppBarLayout 。 我的NestedScrollView仍然局限在屏幕的下半部分,好像AppBarLayout仍在那里(不是)。 我该如何解决? 隐藏之前: 隐藏后(AppBar翻译到顶部): 如您所见,顶部空间是空的,无法访问。 滚动视图在其之前的边距内滚动,就好像CoordinatorLayout未测量可见性更改一样。 我试过调用coordinator.requestLayout() […]

在折叠工具栏布局上将RecyclerView固定在更高的位置

是否可以将RecyclerView锚定到比通常位置稍高的位置,就像大多数可折叠视图上的FAB图标一样(预期结果见图1)。 图1 我尝试了以下代码,但它没有给出预期的结果(参见图2了解当前结果) 图2 添加app:layout_behavior=”@string/appbar_scrolling_view_behavior”将回收器视图附加到可折叠视图,然后忽略添加边距底部。 但是删除它会产生预期的结果,但滚动视图不会按预期运行(没有视差效果),滚动后会滚动背景图像。 因此可以像第一张图像一样实现可折叠视图。

滚动后,CoordinatorLayout在底部留下空白空间

我正在尝试使用CoordinatorLayout实现Google的最新设计技巧,并且在滚动和视差效果方面存在问题。 显示活动后,一切看起来都不错,但是当我尝试滚动时会出现问题。 看起来底部视图没有正确扩展,并且在向上滚动后,下面会出现空白区域。 底部视图似乎只是顶部视图和导航栏之间初始显示的大小。 它看起来像这样: 相关代码: 这种奇怪的行为是随机发生的。 有时底部视图可以正常滚动,并且不会出现空白空间。 我究竟做错了什么? 谢谢。

禁用工具栏滚动

我有当前的设置: 现在一切都按预期工作,如果我在包含片段的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()或类似的东西,所以我也被困在那里。