【问题标题】:Changing a DialogFragment Max_Height dynamically before onResume()?在 onResume() 之前动态更改 DialogFragment Max_Height?
【发布时间】:2019-09-16 00:06:16
【问题描述】:

我有一个自定义 DialogFragment,我想根据其视图的内容大小(包装内容)动态更改其 max_height。

我不希望 max_height 的更新导致 UI 发生跳跃,因此我计划在视图生命周期的早期进行:onMeasure()

但是我怎样才能通知包含dialogdialogFragment

从对话框片段我可以得到它的托管视图,但我无法注册它的onMeasure() 事件。

从视图上看,我可以在onMeasure() 方法中编写代码,但我将如何获得对其包含对话框的引用?

我看到了这篇文章,但是在onResume() 处更改高度会导致 UI 迟钝(看到 UI 后跳转)

https://stackoverflow.com/a/24213921/311130

【问题讨论】:

  • 您希望高度动态变化吗?
  • 是的,我想根据对话内容设置max_height
  • 那么也许扩展DialogFragment 是一个更好的选择。通过这种方式,您可以扩展您自己的随内容扩展的布局。
  • 我确实扩展了,但我想根据对话内容的度量来更改 max_Height。你将如何避免 UI 跳转?
  • 您想在什么时候更改 DialogFragment 的高度?

标签: android layout dialog android-dialogfragment onmeasure


【解决方案1】:

((View) view.getParent()).invalidate() 在哪个视图的onMeasure() 中怎么样。我意识到这有点不对,但应该用一个班轮解决你的问题。

诚然,如果重新计算的高度-View 在视图层次结构中更深,这会变得更加麻烦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多