如何为我的"home screen"安卓工作室设置临时片段



我已经开始编码,我真的很喜欢它,我已经在不同的项目上开/关(学习不同的东西),但现在我遇到了一个问题,我"应用程序"感谢我能得到的所有帮助。

我正在使用导航抽屉,并安装了三个片段。我可以在导航栏中选择一个片段,它就会载入到我的屏幕上。但是当我启动我的应用程序的屏幕是白色的,导航抽屉是在左边,我可以选择一个片段。是否有可能在我的"主屏幕"上有一个片段,所以当我启动应用程序有一个片段已经放在屏幕上,但是!当我在导航抽屉中选择另一个片段时,我希望我的片段在开始加载时消失。否则,两个片段将相互显示(文本对文本)。也许是为了让这个暂时的片段以某种方式"完成"自己。请看看我的imgur图像来了解我的想法。Imgur图片按这里查看

这里是一个关于如何使用FragmentManager的通用解决方案。它应该给出一个关于如何显示Fragment的好主意。除此之外,您还可以在布局中包含静态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>

以后,如果你想取代当前的片段,你可以使用removeadd的FragmentManager方法(replace方法有点bug)。

Fragment currentFragment = fragmentManager.findFragmentById(R.id.fragment_placeholder))
fragmentManager.beginTransaction().remove(currentFragment).add(R.id.fragment_placeholder, yourNewFragment).addToBackStack(null).commit();

最新更新