gpt4 book ai didi

java - 将 fragment 添加到 Activity 中

转载 作者:行者123 更新时间:2023-12-02 12:56:30 25 4
gpt4 key购买 nike

首先,我阅读了这里的所有内容。 https://developer.android.com/guide/components/fragments.html

我有一个 Activity,我想水平划分屏幕并添加 2 个 fragment 。我知道如何在 XML 上添加 fragment ,但我不想要那样。我想在 Java 上添加它们。

所以问题是 FragmentManager 无法工作,除非我的 Activity 扩展了 Fragment。我应该在 Activity 上执行此操作还是应该在其中一个 fragment 上添加 fragment 事务方法?

如果我将 Activity 扩展到 Fragment,它是否也会成为 Fragment?

如果我将fragmentmanager和fragmenttransaction放在其中一个fragment上,如何与activity建立连接?

这是我希望在其上显示我的 fragment 的 Activity

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class ConversionActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_conversion);

NumpadFragment fragment = new NumpadFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.numpad_layout,fragment);
fragmentTransaction.commit();

}
}

这是其中一个 fragment

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class NumpadFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_numpad,container,false);
}
}

最佳答案

一些建议:

  • 使用fragmentTransaction.replace(除非您需要将 fragment 添加到堆栈中)
  • 使用 FrameLayout 作为 fragment 的容器
  • 不要通过“new”运算符创建新 fragment 。添加 newInstance() 方法,并通过调用该方法创建新的 fragment 实例。另外,实现 fragment 和 Activity 之间的交互。提示:使用 Android Studio 向导将 fragment 添加到您的项目中。 Android Studio 将生成已包含所有所需方法的骨架
  • 您肯定需要使用 getSupportFragmentManager (因为您的 fragment 是 android.support.v4.app.Fragment)
  • 调试! - 如果你说“我的应用程序崩溃了”,那是没有用的。发布您的 logcat/异常/其他内容以显示崩溃原因。

关于java - 将 fragment 添加到 Activity 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44406667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com