Fragment
建立ContainerActivity.java文件添加AFragment并且用BFragment替换:
1 public class ContainerActivity extends AppCompatActivity { 2 private AFragment aFragment; 3 private BFragment bFragment; 4 private Button BtnChange; 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_container); 9 BtnChange=findViewById(R.id.btn_change); 10 BtnChange.setOnClickListener(new View.OnClickListener() { 11 @Override 12 public void onClick(View view) { 13 if(bFragment==null){ 14 bFragment=new BFragment();//实例化BFragment 15 } 16 getSupportFragmentManager().beginTransaction().replace(R.id.f1_container,bFragment).commitAllowingStateLoss(); 17 } 18 });//用bFragment替换到Activity中去 19 20 aFragment=new AFragment();//实例化AFragment 21 getSupportFragmentManager().beginTransaction().add(R.id.f1_container,aFragment).commitAllowingStateLoss(); 22 //把AFragment添加到Activity中,记得调用commit 23 } 24 }
然后对应的activity_container.xml文件:
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="match_parent"> 4 5 <Button 6 android:id="@+id/btn_change" 7 android:layout_width="match_parent" 8 android:layout_height="50dp" 9 android:text="更换fragment"/> 10 11 <FrameLayout 12 android:id="@+id/f1_container" 13 android:layout_width="match_parent" 14 android:layout_height="match_parent" 15 android:layout_below="@id/btn_change"/> 16 </RelativeLayout>
然后是AFragment.java文件,继承的是Fragment,不是AppCompatActivity:
1 public class AFragment extends Fragment { 2 private TextView TVtitle; 3 @Nullable 4 @Override 5 public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 6 View view= inflater.inflate(R.layout.fragment_a,container,false); 7 return view; 8 } 9 10 @Override 11 public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { 12 super.onViewCreated(view, savedInstanceState); 13 TVtitle=view.findViewById(R.id.tv_title); 14 } 15 }
对应的fragment_a.xml文件:
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" 4 android:orientation="vertical" 5 android:gravity="center"> 6 <TextView 7 android:id="@+id/tv_title" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 android:textColor="@color/black" 11 android:textSize="20sp" 12 android:text="我是AFragment!" 13 android:gravity="center"/> 14 </LinearLayout>
最后就是BFragment.java文件和fragment_b.xml文件和A差不多,就是改了个字母(把b换成a)而已。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义