切换可见性AppBarLayout视图会导致加载的碎片出现间距问题

时间:2015-06-26 16:47:01

标签: android material-design android-coordinatorlayout android-support-design android-appbarlayout

我在新的Android Design Support Librar(http://android-developers.blogspot.com.ar/2015/05/android-design-support-library.html)中遇到了一个奇怪的问题。如果我在AppBarLayout中放置其他内容(如LinearLayout)以及ToolBar并切换该内容的可见性,那么切换片段将在片段内容的顶部显示死区。

当切换内容的可见性时,似乎AppBarLayout没有正确调整父级CoordinatorLayout的大小。我的CoordinatorLayout包含在DrawerLayout中。我想根据显示的片段切换AppBarLayout中额外LinearLayout的可见性。

这是MainActivity的main.xml文件:

var visibleInvalids = angular.element.find('.ng-invalid:visible');
if (angular.isDefined(visibleInvalids)){
    // if we find one, set focus and anchor
    visibleInvalids[0].scrollIntoView(true);

    visibleInvalids[0].focus();
}

1 个答案:

答案 0 :(得分:1)

我在使用支持设计小部件时遇到了类似的问题。我在DrawerLayout中有一个CoordinatorLayout,在CoordinatorLayout中有一个AppBarLayout。我在AppBarLayout中有两个工具栏。我的目标是显示一个带有ViewPager的工具栏,显示一个recyclerview内容。我想在选择项目时在工具栏之间切换。换句话说,我创建了一个工具栏GONE,而另一个工具栏可见,反之亦然。向上滚动内容会将工具栏向上推离屏幕顶部。一切都很完美,除了改变方向会显示工具栏的空间应该消失。我尝试了每一个我能想到的黑客来摆脱它,但没有成功。然后我发现了这篇文章并意识到这是支持库中的一个错误。然后我尝试将一个FrameLayout放在AppBarLayout中,然后将两个工具栏放在FrameLayout中,而不是更多的空间!现在一切正常,因为我打算工作。 GONE工具栏为GONE,即使更改方向,也只显示可见工具栏。

希望这有助于某人。