我正在学习Android,我的项目中使用了BottomBar。它非常好用,运行得很稳定。我的应用程序代码与教程中的几乎完全相同,唯一不同的是我的MainActivity
继承自AppCompatActivity
。
现在我想要做的是在FrameLayout
中加载片段:
<!-- This could be your fragment container, or something -->
<FrameLayout
android:id="@+id/contentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bottomBar"
/>
为了达到这个目的,我正在尝试使用下面这段代码,这是我通过谷歌搜索解决我的问题时找到的:
// Create new fragment and transaction
QrCodeFragment newFragment = new QrCodeFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack if needed
transaction.replace(R.id.bottomBar, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
该行代码
transaction.replace(R.id.bottomBar, newFragment);
报错,因为 newFragment 的类型应该是 android.app.Fragment
。我的 QrCode 类: public class QrCodeFragment extends Fragment
由于今天我开始学习 Android,所以我不确定自己是否做得正确。我很困惑是否应该将片段加载到 FrameLayout
中,如果是这样的话,我做错了什么,无法加载它。我知道这是我的片段类型问题,但我不知道如何创建具有所需类型的片段。我使用 Android Studio > New > Fragment > Fragment (Blank)
创建了它。感谢任何帮助。
更新: 我在这篇文章中找到了解决方案,但即使没有错误,我仍然看不到片段。