我从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 transactionQrCodeFragment 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 neededtransaction.replace(R.ID.bottombar, newFragment);transaction.addToBackStack(null);// Commit the transactiontransaction.commit();
行transaction.replace(R.ID.bottombar,newFragment);抱怨newFragment的类型,应该是androID.app.Fragment.我的QrCode类:公共类QrCodeFragment扩展了Fragment
当我今天开始使用AndroID时,如果我做对了,我会感到困惑.如果我真的应该在FrameLayout中加载片段,如果是的话,我做错了什么我无法加载它.我知道这是我的片段的类型,但我不知道如何使用所需类型创建它.我使用AndroID Studio创建了它>新>片段>片段(空白)
谢谢你的帮助
更新:
我在this post找到了我的错误的解决方案,但即使没有错误,我仍然看不到片段.
解决方法:
首先,你的Fragment交易行中有一个错误,根据你的布局应该是:
transaction.replace(R.ID.contentContainer, newFragment); // not R.ID.bottombar
其次,您应该使用supportFragmentManager而不是fragmentManager来处理支持片段,因此请执行以下方法:
final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();transaction.replace(R.ID.contentContainer, newFragment);transaction.addToBackStack(null);transaction.commit();
总结 以上是内存溢出为你收集整理的java – Android:如何将片段加载到FrameLayout中全部内容,希望文章能够帮你解决java – Android:如何将片段加载到FrameLayout中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)