java - 如何为我的 "home screen"Android studio 设置临时片段

标签 java android-layout android-studio android-fragments layout

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

我正在使用抽屉导航并安装了三个片段。我可以浏览抽屉导航并选择一个片段,然后它会加载到我的屏幕上。但是当我启动我的应用程序时,屏幕只是白色,抽屉导航位于左侧,我可以选择一个片段。我的“主屏幕”上是否有可能有一个片段,因此当我启动应用程序时,屏幕上已经放置了一个片段但是!当我在抽屉导航中选择另一个片段时,我想让开始时加载的片段消失。否则两个片段将相互显示(文本叠加文本)。也许是为了让临时片段以某种方式“完成”自己。请看我的 imgur 图片来了解我的想法。 Imgur image press here to view

最佳答案

这是有关如何使用 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 在您的 Activity 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的removeadd方法(replace方法有点像 buggy )。

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

关于java - 如何为我的 "home screen"Android studio 设置临时片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39570251/

相关文章:

java - 如何使用 Hibernate 插入记录正确自动生成主键 ID

android - 将 View 添加到窗口时如何获取 View 宽度和高度?

java.lang.ClassNotFoundException : org. eclipse.jetty.Server 问题

java - 如何从 Java 调用 tabula (JAR)?

android - 为什么与 ui 线程的通信只能通过处理程序?

intellij-idea - 为什么 Android Studio/Gradle 在没有进行任何更改的情况下重建我的应用程序?

android-studio - 无法生成签名的APk

Android Studio 2.2 显示错误 :CreateProcess error=216

java - 创建该对象的新实例时滚动浏览对象

java - 以编程方式将 TextView 放置在相对布局中的彼此下方