安卓导航组件。显示带有从箭头到十字的变形导航图标的全屏对话框

Posted

技术标签:

【中文标题】安卓导航组件。显示带有从箭头到十字的变形导航图标的全屏对话框【英文标题】:Android navigation component. Show full-screen dialog with morphing navigation icon from arrow to cross 【发布时间】:2021-06-30 14:28:29 【问题描述】:

我从示例“导航抽屉活动”创建了项目。导航图标适用于***和其他目的地。导航图标从“汉堡包”变为“箭头”并返回。

问题

好的。现在我需要实现全屏对话框,因为它recommended 用于带有键盘输入的对话框。

我根据documentation 创建了对话框片段目标:ProductCountChangeFragment.kt

internal class ProductCountChangeFragment : DialogFragment(R.layout.product_count_change_fragment) 
    //...

navigation.xml

<dialog
    android:id="@+id/product_count_change_dialog_fragment"
    android:name="my.package.ProductCountChangeFragment"
    tools:layout="@layout/product_count_change_fragment" />

它以常规对话框开始(不是全屏)。我相信,导航组件支持材料设计建议,但我错过了如何启用所需行为的一个小细节。

【问题讨论】:

【参考方案1】:
    你可以在片段attach()和显示detach()时隐藏/显示工具栏
override fun onAttach(context: Context) 
    super.onAttach(context)
    (activity as? MainActivity)?.run 
        goneBottomNavigation()
        setStatusBarColor(R.color.C_E6EBEF)    
       

    这个:导航组件也有同样的问题:How to hide toolbar in start destination。

【讨论】:

它没有解决我的问题。此示例无法使导航按钮从箭头变为十字 如果没有解决,可以使用:添加片段。 FragmentTransaction 事务 = fragmentManager.beginTransaction(); transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); transaction.add(android.R.id.content, newFragment) .addToBackStack(null).commit() 嗯。我需要自己编写和支持它。我正在从导航组件中寻找解决方案

以上是关于安卓导航组件。显示带有从箭头到十字的变形导航图标的全屏对话框的主要内容,如果未能解决你的问题,请参考以下文章

如何修复反应导航从屏幕顶部移动我的组件?

(导航组件)返回首页fragment时如何在activity上显示返回箭头?

如何将 bootstrap-vue 图标包含到 nuxtjs 中?导航栏向下箭头的问题

在导航栏中将后退按钮更改为向下箭头

使用带有喷气背包导航组件的导航抽屉时如何更改工具栏图标(汉堡图标)

在导航栏中将后退按钮更改为向下箭头