Activity嵌套Fragment 控制返回键

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activity嵌套Fragment 控制返回键相关的知识,希望对你有一定的参考价值。

首先Fragment必须是单例模式

    companion object {
        @JvmStatic
        fun newInstance(): EventListFragment {
            return instance!!
        }
        private var instance: EventListFragment? = null
            get() {
                if (field == null) {
                    field = EventListFragment()
                }
                return field
            }
//        fun get(): SingletonDemo{
//            //细心的小伙伴肯定发现了,这里不用getInstance作为为方法名,是因为在伴生对象声明时,内部已有getInstance方法,所以只能取其他名字
//            return instance!!
//        }
    }

然后自己判断代码加上去就可以了

    override fun onBackPressed() {

        val newInstance = EventListFragment.newInstance();
        Log.e(TAG, "onBackPressed: " + newInstance.isAdded)
        Log.e(TAG, "onBackPressed: " + newInstance.isHidden)
        if (!newInstance.isHidden() && newInstance.isAdded()) {
            Anguo.onBackPressed(this, null, false)
        } else {
            super.onBackPressed();
        }


    }

是这个Fragment进行拦截 进行自己的操作 不是的话正常使用返回的逻辑

以上是关于Activity嵌套Fragment 控制返回键的主要内容,如果未能解决你的问题,请参考以下文章

activity嵌套fragment 并 启动activity

是否最好使用 Activity.onAttachFragment 或 Fragment.onAttach 在 Activity 和嵌套片段之间进行通信?

Activity嵌套多个Fragment实现横竖屏切换

[Android Studio]如何从Fragment中嵌套的Recycleview启动一个Activity?

Fragment详解

为啥显示Fragment1之前会调用Fragment2的onCreateView