【发布时间】:2019-11-29 09:33:00
【问题描述】:
我有一个应用程序结构:
仪表板活动
- 首页片段
- 广告片段
- 问候片段
- 体验片段
考虑到这一点,我正在尝试在HomeFragment 中加载不同的片段,这也是一个片段
我在 HomeFragment 的onCreateView()中写了如下代码
val fm : FragmentManager = childFragmentManager
val container = R.id.greetingFragmentContainer
val greetingFragment : Fragment? = fm.findFragmentById(R.id.fragmentGreeting)
if (greetingFragment != null) {
fm.beginTransaction().replace(container, greetingFragment).commit()
} else {
Log.e("HomeFragment", "Fragment not found")
}
fragment_greeting.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:id="@+id/fragmentGreeting"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="._fragments.dash.GreetingFragment">
<ImageView
android:id="@+id/profile_image"
android:layout_width="96dp"
android:layout_height="96dp"
android:src="@drawable/loading"/>
</FrameLayout>
使用 if 语句,我发现 greetingFragment 值返回 null。
我做错了什么?
【问题讨论】:
-
尝试 android:name 在
中指定片段类 -
@RahulShukla 没用。对不起:/
-
对不起,我也错过了。
-
老实说,您不只是在寻找 ViewPager + FragmentPagerAdapter 吗?
-
哦,我把那个组合记下来了。只是,我想要一些片段是静态的并且以编程方式加载的地方。
标签: android android-fragments kotlin fragment