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)而已。

 

 

posted @   KongLong_cm  阅读(78)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示