高度与最小高度工具栏

Height vs minHeight Toolbar

我最近更新到 AppCompatActivity 并从 ActionBar 切换到 ToolBar

我在查看xml的时候,发现了这两个属性-

android:layout_height="wrap_content"

android:minHeight="?attr/actionBarSize"

这两个属性有什么区别?为什么在 ToolBar 文档中 layout_height 设置为 wrap_content

是否有必要同时使用这两个属性?

好的,当您指定 android:layout_height="wrap_content" 时,如果您的工具栏不包含更大的子视图,那么您的工具栏可能会缩小标准操作栏大小。

但是如果您指定 android:minHeight="?attr/actionBarSize" 那么工具栏中的视图有多小都没有关系保持 ActionBar 的标准大小。

What is the difference between these two attributes?

android:minHeight 定义视图的最小高度。
android:layout_height 指定视图的基本高度。

伪代码更清晰。

if(minHeightDefined) {
    if(currentHeightOfView < minHeight) {
        currentHeightOfView = minHeight;
    } else {
        currentHeightOfView = layout_height;
    }
} else {
    currentHeightOfView = layout_height;
}

minHeightDefined - 标志指示 android:minHeight 在布局 xml 文件 中声明

Why is layout_height set to wrap_content in the ToolBar documentation?

因为 this is 默认实现。

  • 在同时使用属性 android:layout_height="wrap_content"android:minHeight="?attr/actionBarSize" 时,您的工具栏可能当您使用较大的图标时,高度可能会变大。
  • android:minHeight 确保您的工具栏不会自行调整为小于 ?attr/actionBarSize 值。

如果您希望固定工具栏高度,只需使用

android:layout_height="?attr/actionBarSize"

不需要其他属性。