android - 具有自定义重力选项的导航组件工具栏
问题描述
我正在尝试为两个不同的片段设置两个不同的工具栏标题...其中一个需要与工具栏的底部对齐,具有较大的 minHeight,另一个必须保持默认的垂直中心值,就像在带有导航组件的默认工具栏中。
很容易实现 2 个不同minHeight
的 s,但由于某种原因,我无法自定义文本的重力。
1-) 尝试了注释掉的行???
2-) 尝试提供具有 2 种不同样式的自定义重力场,如下面的第二个块所示
3-) 在 Toolbar 中提供自定义 TextView 如何工作?它不会替换现有的导航组件配置。这不起作用AFAIK。
.
.
1-)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setSupportActionBar(findViewById(R.id.toolbar_main))
setupBottomNavigationBar()
}
private fun setupBottomNavigationBar() {
val navGraphIds = listOf(R.navigation.bla, R.navigation.blabla)
val controller = binding.bottomNav.setupWithNavController(
navGraphIds, supportFragmentManager, R.id.nav_host_container, intent
)
controller.observe(
this,
Observer { navController ->
setupActionBarWithNavController(navController)
when (navController.graph.id) {
R.id.more -> {
binding.toolbarMain.minimumHeight = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
ResourcesCompat.getFloat(resources, R.dimen.min_height),
resources.displayMetrics
).toInt()
binding.toolbarMain.setTitleTextAppearance(this, R.style.ToolbarBig)
// (binding.toolbarMain.gravity = ????
}
else -> {
binding.toolbarMain.setTitleTextAppearance(this, R.style.ToolbarNormal)
binding.toolbarMain.minimumHeight = 0
}
}
}
)
currentNavController = controller
}
2-)
<style name="ToolbarNormal" parent="ParentToolbar0">
<!-- <item name="android:buttonGravity">center_vertical</item>-->
<!-- <item name="android:gravity">center_vertical</item>-->
<item name="android:foregroundGravity">center_vertical</item>
</style>
<style name="ToolbarBig" parent="ParentToolbar0">
<item name="android:gravity">bottom</item>
<item name="android:buttonGravity">bottom</item>
<item name="android:foregroundGravity">bottom</item>
<item name="android:layout_gravity">bottom</item>
<item name="android:titleMarginBottom">-300dp</item>
</style>
</resources>
任何帮助实现大型工具栏的底部对齐将不胜感激。
解决方案
推荐阅读
- java - 具有双向一对多关系的子表中的 JHipster 外键为 Null
- php - 如何使视频具有相同的形状和高度
- python-3.x - 二进制输入的用户验证循环无法识别输入
- c# - 加载资源失败:服务器响应状态为 500(内部服务器错误)asp.net
- vb.net - 为什么单击显示时它总是替换第一个数据?
- java - 在旧版本的 android studio 上迁移到 androidx,即 3.1.2?
- class - 关于 UML 类模型中的 1 对 1 关联
- javascript - 如何在生产中禁用 console.log() 并显示横幅?
- c - 为什么这个倒置句子算法不起作用?
- javascript - 在列表中添加链接以显示其数据