我在我的应用程序中使用Collapsible Toolbar。活动启动时,可折叠工具栏处于扩展状态,启用滚动,工作正常。但是现在我需要显示一个全屏错误布局,以防我的API失败。在这种情况下,我必须折叠工具栏,并阻止滚动效果。
错误布局显示重试按钮。在重试时,我再次调用API,如果API成功,我必须再次展开工具栏并启用滚动效果。
我能够用setExpanded(标志,动画)折叠工具栏,但在这种情况下,我无法阻止可折叠工具栏的滚动效果,同时显示错误布局。
我需要提供一种方法来阻止以及取消块滚动效果+展开/折叠工具栏。任何帮助都将是非常感谢的。!!!
发布于 2016-12-23 06:39:06
根据我以前的回答,我创建了一个库AppBarrr来将屏幕锁定在扩展模式下。
正如我所说的,Toolbar的高度是关键:CollapsingToolbarLayout将崩溃直到Toolbar的高度,并将扩展到AppBarLayout的高度。
使用这个库,您必须将两个布局设置为Toolbar和扩展布局(用于锁定屏幕和滚动框),它将创建一个CollapsingToolbarLayout并在其中膨胀这些布局。
您可以声明动画的持续时间,内部CollapsingToolbarLayout的颜色,折叠/展开标题的样式,甚至锁定布局的高度。如果单击“外部”,也可以隐藏展开的布局。它可以支持扩展布局中的NestedScrollView和ScrollView。文献资料和一个示例应用程序都可以在Github上找到。
对于那些不想使用库的人,我先前的回答给出了方法。以下是前一个答案的输出:

基本上,这是相同的概念,但是不需要编写完整的类,使用这个库,您只需要在xml中有一个简单的小部件,就这样!
随意使用,叉子或测试。(希望它会有用;)
发布于 2016-12-20 12:35:51
使您的错误布局,使它将重叠可折叠工具栏。还将android:clickable="true"设置为错误布局。
将可见性设置为错误布局时,相应地设置工具栏滚动。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f3f3f3"
android:orientation="vertical"
>
<!-- Add your other layout including Collapsible Toolbar here.-->
<RelativeLayout
android:id="@+id/errorLayout"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>发布于 2016-12-19 13:13:59
如果您使用AlertDialog来传递错误,使用ProgressDialog (旋转器)来显示您正在做的事情,那么您可以在应用程序进行操作时阻止用户输入。
https://stackoverflow.com/questions/41076665
复制相似问题