kotlin fragment设置fragment隐藏
时间: 2023-07-04 10:10:17 浏览: 148
你可以使用 FragmentTransaction 中的 hide() 方法来隐藏一个 Fragment。例如:
```kotlin
val fragmentTransaction = supportFragmentManager.beginTransaction()
val fragment = supportFragmentManager.findFragmentById(R.id.fragment_container)
if (fragment != null) {
fragmentTransaction.hide(fragment)
}
fragmentTransaction.commit()
```
这个例子中,根据传入的 R.id.fragment_container 参数查找了要隐藏的 Fragment,如果找到了,则调用 hide() 方法来隐藏它,最后调用 commit() 方法提交事务即可。
相关问题
kotlin fragment设置自己隐藏
在 Kotlin 中,Fragment 可以通过设置 `isHidden` 属性来隐藏自己。当 `isHidden` 属性为 `true` 时,该 Fragment 将不再在界面上显示,但仍然存在于 FragmentManager 中。
下面是一个示例代码片段,演示如何在 Kotlin 中隐藏 Fragment:
```kotlin
class MyFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_my, container, false)
}
fun hide() {
isHidden = true
}
}
```
在上面的代码中,我们创建了一个名为 `MyFragment` 的 Fragment,并实现了一个名为 `hide()` 的方法。在 `hide()` 方法中,我们将 `isHidden` 属性设置为 `true`,以隐藏 Fragment。
要使用 `hide()` 方法隐藏 Fragment,只需要在 Fragment 所在的 Activity 中调用 `hide()` 方法即可:
```kotlin
val fragment = MyFragment()
fragment.hide()
```
以上代码将创建一个新的 `MyFragment` 实例,并将其隐藏。
kotlin fragment闪退
当应用程序被后台清理后,如果我们从历史任务中再次打开应用程序,Android系统会调用Fragment的无参构造方法来构造Fragment实例。如果该实例不存在,则会导致应用程序闪退。此外,当应用程序在不保留后台的情况下重建时,也可能会出现闪退的情况。这种情况通常会出现在Kotlin Fragment中,其中最常见的错误是在Fragment中定义了带参数的构造函数,而系统只能调用无参构造函数。因此,如果您想在Kotlin Fragment中传递参数,可以使用Bundle来传递参数,而不是在构造函数中传递参数。
阅读全文