【发布时间】:2016-02-28 17:17:54
【问题描述】:
我正在使用来自 Google 最近发布的 AppCompat v23.2 的 BottomSheetBehavior。我的底部表格的高度取决于底部表格内显示的内容(类似于 Google 在他们的地图应用中所做的)。
它适用于最初加载的数据,但我的应用程序会更改运行时显示的内容,当这种情况发生时,底部工作表会保留在其旧高度,这会导致底部未使用空间或视图被切掉。
有没有办法通知底部工作表布局重新计算用于展开状态的高度(当ViewGroup 的高度设置为MATCH_HEIGHT 时)或任何手动设置所需高度的方法?
编辑:我还尝试在ViewGroup 及其父级上手动调用invalidate(),但没有任何成功。
【问题讨论】:
-
您可以将视图高度设置为 wrap_parent,然后在加载内容后使视图无效
-
视图高度设置为 wrap_parent,但我的问题是,一旦视图无效,它就不会重新计算它的高度,底部工作表会保持原样
-
查看BottomSheetBehavior的代码,它在CoordinatorLayout调用的onLayoutChild方法中计算高度。您是否尝试过通过调用 requestLayout() 来使其无效?
-
code.google.com/p/android/issues/detail?id=205226 这里报告了状态为 FutureRelease 的问题。所以也许他们有一天会修好。