【问题标题】:Height vs minHeight Toolbar高度与 minHeight 工具栏
【发布时间】:2015-08-28 10:23:58
【问题描述】:
我最近更新到AppCompatActivity 并从ActionBar 切换到ToolBar。
我在查看xml的时候,发现了这两个属性-
android:layout_height="wrap_content"
和
android:minHeight="?attr/actionBarSize"
这两个属性有什么区别?为什么工具栏文档中的layout_height 设置为wrap_content?
是否需要同时使用这两个属性?
【问题讨论】:
标签:
java
android
material-design
android-toolbar
appcompatactivity
【解决方案1】:
好的,当您指定 android:layout_height="wrap_content" 时,如果您的工具栏不包含大于标准操作栏大小的子视图,则它可能会缩小。
但是,如果您指定 android:minHeight="?attr/actionBarSize",那么工具栏中的视图大小无关紧要,它将保持其标准的 ActionBar 大小。
【解决方案2】:
这两个属性有什么区别?
android:minHeight 定义视图的最小高度。
android:layout_height 指定视图的基本高度。
伪代码更清晰。
if(minHeightDefined) {
if(currentHeightOfView < minHeight) {
currentHeightOfView = minHeight;
} else {
currentHeightOfView = layout_height;
}
} else {
currentHeightOfView = layout_height;
}
minHeightDefined - 标志表明 android:minHeight 已在布局 xml 文件中声明或不
为什么在 ToolBar 文档中 layout_height 设置为 wrap_content?
因为this is 是默认实现。
【解决方案3】:
- 在同时使用
android:layout_height="wrap_content" 和 android:minHeight="?attr/actionBarSize" 这两个属性时,当您使用较大的图标时,您的工具栏高度可能会变大。
-
android:minHeight 确保您的工具栏不会将自身调整为小于 ?attr/actionBarSize 值。
如果您希望工具栏高度固定,只需使用
android:layout_height="?attr/actionBarSize"
不需要其他属性。