我已经开始编码了,我真的很喜欢它,我已经在不同项目上开/关(学习不同的东西)但是现在我遇到了问题,我“app”会回复我能得到的所有帮助。
我正在使用导航抽屉并安装了三个片段。我可以浏览导航抽屉并选择一个片段并将其加载到我的屏幕上。但是,当我启动我的应用程序时,屏幕只是白色,导航抽屉在左边,我可以选择一个片段。是否有可能在我的“主屏幕”上有一个片段,所以当我启动应用程序时,屏幕上已经放置了一个片段但是!当我在导航抽屉中选择另一个片段时,我希望我的片段在开始时加载消失。否则两个片段将相互显示(文本文本)。也许让临时片段以某种方式“完成”自己。请查看我的imgur图片以获取我的想法。Imgur image press here to view
答案 0 :(得分:2)
以下是有关如何使用FragmentManager
的通用解决方案。它应该对如何显示Fragment
提出一个好主意。除此之外,您可以在布局中包含静态片段。这取决于你如何接近它
所以FragmentManager
解决方案看起来像这样:
YourActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = AnyFragment.instantiate(this, AnyFragment.class.getName());
fragmentManager.beginTransaction().add(R.id.fragment_placeholder, fragment).addToBackStack(null).commit();
}
目标ID在您的活动layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/fragment_placeholder"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"></FrameLayout>
</LinearLayout>
稍后如果要替换当前的Fragment,可以使用FragmentManager的remove
和add
方法(replace
方法有点儿错误。)
Fragment currentFragment = fragmentManager.findFragmentById(R.id.fragment_placeholder))
fragmentManager.beginTransaction().remove(currentFragment).add(R.id.fragment_placeholder, yourNewFragment).addToBackStack(null).commit();