Android动态添加碎片

一.MainActivity.javaimportandroidx.fragment.app.FragmentActivity;importandroidx.fragment.app.FragmentManager;importandroidx.fragment.app.FragmentTransaction;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.Button;publicclassMainActivityextendsFragmentActivity{publicMainActivity(){

Log.e(“TAG”,”MainActivity()..”);
}
@OverrideprotectedvoidonCreate(BundlesavedInstanceState){
Log.e(“TAG”,”MainActivityonCreate()..”);super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//重写onCreate()办法//创立Fragment目标finalMyFragment1fragment1=newMyFragment1();//得到FragmentManagerFragmentManagermanager=getSupportFragmentManager();//得到FragmentTransacationFragmentTransactiontransaction=manager.beginTransaction();//增加Fragment目标并提交transaction.add(R.id.ll_main,fragment1).commit();
Buttonbutton1=(Button)findViewById(R.id.fragment_1);
button1.setOnClickListener(newView.OnClickListener(){
@OverridepublicvoidonClick(Viewview){
showFragment2();
}
});
Buttonbutton2=(Button)findViewById(R.id.fragment_2);
button2.setOnClickListener(newView.OnClickListener(){
@OverridepublicvoidonClick(Viewview){
deleteFragment2();
}
});
}privateMyFragment2fragment2;publicvoidshowFragment2(){//创立Fragment目标fragment2=newMyFragment2();//得到FragmentManagerFragmentManagermanager=getSupportFragmentManager();//得到FragmentTransacationFragmentTransactiontransaction=manager.beginTransaction();//将当前操作增加到回退栈,这样点击back回到上一个状况transaction.addToBackStack(null);//替换Fragment目标并提交transaction.replace(R.id.ll_main,fragment2).commit();
}publicvoiddeleteFragment2(){// 得到FragmentManagerFragmentManagermanager=getSupportFragmentManager();//得到FragmentTransacationFragmentTransactiontransaction=manager.beginTransaction();//移除Fragment目标并提交transaction.remove(fragment2).commit();
}
}

android


二.activity_main.xml
xmlversion=”1.0″encoding=”utf-8″?><LinearLayoutxmlns:android=”http://schemas.android.com/apk/res/android”xmlns:app=”http://schemas.android.com/apk/res-auto”xmlns:tools=”http://schemas.android.com/tools”android:layout_width=”match_parent”android:layout_height=”match_parent”android:orientation=”vertical”tools:context=”.MainActivity”><LinearLayoutandroid:orientation=”horizontal”android:layout_width=”match_parent”android:layout_height=”wrap_content”><Buttonandroid:id=”@+id/fragment_1″android:text=”切换至第二个碎片”android:layout_width=”0dp”android:layout_weight=”1″android:layout_height=”wrap_content”/><Buttonandroid:id=”@+id/fragment_2″android:text=”删去第二个碎片”android:layout_width=”0dp”android:layout_weight=”1″android:layout_height=”wrap_content”/>LinearLayout><LinearLayoutandroid:id=”@+id/ll_main”android:orientation=”horizontal”android:layout_width=”match_parent”android:layout_height=”match_parent”>LinearLayout>LinearLayout>
编写好的界面如下图所示:
三.MyFragment1.javaimportandroid.os.Bundle;importandroidx.fragment.app.Fragment;importandroid.util.Log;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.TextView;publicclassMyFragment1extendsFragment{publicMyFragment1(){//Requiredemptypublicconstructor}
@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);
}
@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,
BundlesavedInstanceState){//Inflatethelayoutforthisfragmentreturninflater.inflate(R.layout.fragment_my_fragment1,container,false);
}
}
四.MyFragment2.javaimportandroid.os.Bundle;importandroidx.fragment.app.Fragment;importandroid.util.Log;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.TextView;publicclassMyFragment2extendsFragment{publicMyFragment2(){//Requiredemptypublicconstructor}
@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);
}
@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,
BundlesavedInstanceState){//Inflatethelayoutforthisfragmentreturninflater.inflate(R.layout.fragment_my_fragment2,container,false);
}
}
五.fragment1.xml
xmlversion=”1.0″encoding=”utf-8″?><FrameLayoutxmlns: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”tools:context=”.MyFragment1″><TextViewandroid:layout_width=”match_parent”android:layout_height=”match_parent”android:text=”这是第一个碎片”/>FrameLayout>
六.fragment2.xml
xmlversion=”1.0″encoding=”utf-8″?><FrameLayoutxmlns: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”tools:context=”.MyFragment2″><TextViewandroid:layout_width=”match_parent”android:layout_height=”match_parent”android:text=”这是第二个碎片”/>FrameLayout>

© 版权声明
好牛新坐标
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章