Fragment作为Android最基本,最重要的基础概念之一,在开发中经常会和他大家到。Fragment可以理解成Activity中用户界面的一个行为后者一部分,它必须被嵌套Activity中。但是一个Fragment有它自己独立的xml布局文件,并且具有良好的封装性,因此特殊情况下Fragment可以容易用Activity来进行替换。
Fragment常用的方法有:
添加:add,移除:remove、显示:show、隐藏:hide、替换:replace。
创建方法有两种,一种为静态创建,一种是动态创建。
静态加载:创建Fragment布局,创建类继承自Fragment,重写类中必要方法,Activity页面布局中添加fragment标签并指定name。
动态创建方式思路:获得FragmentManager对象,开启事务,通过FragmentTransition调用add()、replace()方法管理fragment、提交transaction.commit();
Fragment生命周期共11个
onAttach():Fragment与Activity有联系
onCreate():创建Fragment
onCreateView():创建Fragment视图,尽量不要做耗时操作
onActivityCreated():当Activity中的onCreate方法执行完后调用。
onstart:启用
onResume():可见
onPause():不可见
onStop():停止
onDestroyView():销毁Fragment视图
onDestroy():销毁Fragment
onDetach():Fragment和Activity解除关联的时候调用
<FrameLayout
android:id="@+id/fl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></FrameLayout>
<RadioGroup
android:id="@+id/rg"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="45dp">
<RadioButton
android:id="@+id/rb1"
android:button="@null"
android:text="首页"
android:textColor="@drawable/textcolor"
android:checked="true"
android:textAlignment="center"
android:drawableTop="@drawable/home"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"></RadioButton>
<RadioButton
android:id="@+id/rb2"
android:button="@null"
android:text="首页"
android:textColor="@drawable/textcolor"
android:textAlignment="center"
android:drawableTop="@drawable/home"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"></RadioButton>
<RadioButton
android:id="@+id/rb3"
android:button="@null"
android:text="首页"
android:textColor="@drawable/textcolor"
android:textAlignment="center"
android:drawableTop="@drawable/home"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"></RadioButton>
</RadioGroup>
private FrameLayout fl;
private RadioGroup rg;
BlankFragment1 fragment1 = new BlankFragment1();
BlankFragment2 fragment2 = new BlankFragment2();
BlankFragment3 fragment3 = new BlankFragment3();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fl = findViewById(R.id.fl);
rg = findViewById(R.id.rg);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fl,fragment1);//添加
fragmentTransaction.add(R.id.fl,fragment2);
fragmentTransaction.add(R.id.fl,fragment3);
fragmentTransaction.hide(fragment1);//隐藏
fragmentTransaction.hide(fragment2);
fragmentTransaction.hide(fragment3);
fragmentTransaction.show(fragment1);//展示
fragmentTransaction.commit();//提交
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i)
{
case R.id.rb1:
changedFragment(fragment1);
break;
case R.id.rb2:
changedFragment(fragment2);
break;
case R.id.rb3:
changedFragment(fragment3);
break;
}
}
private void changedFragment(Fragment fragment) {
FragmentManager fragmentManager1 = getSupportFragmentManager();
FragmentTransaction fragmentTransaction1 = fragmentManager1.beginTransaction();
fragmentTransaction1.hide(fragment1);
fragmentTransaction1.hide(fragment2);
fragmentTransaction1.hide(fragment3);
fragmentTransaction1.show(fragment);
fragmentTransaction1.commit();
}
});
}
本文介绍了Android中的Fragment概念,它是Activity界面的一部分,具有独立的布局和封装性。Fragment可以通过添加、移除、显示、隐藏和替换等方法进行管理。创建Fragment可静态或动态进行,其生命周期包括11个阶段,如onAttach、onCreate、onDestroy等。示例代码展示了如何在Activity中添加和切换Fragments。
436

被折叠的 条评论
为什么被折叠?



