代码之家  ›  专栏  ›  技术社区  ›  dessalines

如何为ListDetailPaneScaffold设置窗格的初始大小/比例?

  •  2
  • dessalines  · 技术社区  · 5 月前

    列表中要详细说明的默认初始比例 ListDetailPaneScaffold 约为20%和80%。

    我希望这些比例各为50%,但无法确定初始比例。

    有人知道如何设定这些初始比例吗?

    1 回复  |  直到 5 月前
        1
  •  3
  •   tyg    5 月前

    您可以使用修饰符 preferredWidth 在ListDetailPaneScaffold的窗格中使用lambdas来调整窗格宽度。您只能设置一个固定 dp 然而,价值。将其设置为精确达到50%将需要一些开销来计算。

    自适应库的1.1.0版本提供了另一种解决方案。在撰写本文时,最新版本是 1.1.0-alpha08 ,因此这可能随时发生变化:

    你现在可以通过一个 PaneExpansionState 作为最后一个参数:

    val paneExpansionState = rememberPaneExpansionState()
    
    ListDetailPaneScaffold(
        ...
        paneExpansionState = paneExpansionState,
    )
    

    此新状态允许您为第一个窗格设置相对宽度:

    paneExpansionState.setFirstPaneProportion(0.5f)
    

    这将使第一个窗格占用脚手架中所有窗格可用空间的一半。其余的将分布在其他窗格中。如果你没有一个额外的窗格,它只是细节窗格,那么第一个和第二个窗格的宽度都是一样的,每个窗格都占据了50%的可用空间。

    当你使用 setFirstPaneProportion 如果启用了拖动手柄,请确保不会意外重置用户使用拖动手柄指定的宽度。