Fragment

Fragment

1、什么是Fragment

fragment是一种新的API技术,在它出现之前,页面切换都是通过创建多个activity

2、用Fragment能解决什么问题

  • 在Fragment出现之前,一个app需要编写出多套布局方案来满足手机版以及Pad版的布局问题,而通过Fragment可以解决不同屏幕分辨率的适配问题,动态适应。
  • 通过Fragment,一个activity可以实现不同页面的切换
  • Fragment解决了activity间的切换不流畅,布局切换时更轻量。
  • Fragment可以封装成不同的重要组件,并可以单独管理其生命周期和UI布局。
  • Fragment无需在AndroidManifest中注册,可以在布局文件中直接引用。

3、导入Fragment应注意的问题

  • 使用Fragment时,导入AndroidSDK中的Fragment,包:Android.app.Fragment,不要使用V4包中的Fragment。
  • V4包中的Fragment的能兼容到Android1.6,目前Android开发的最低版本是4.0,这里直接使用SDK自带Fragment即可,无需再使用V4支持包里的Fragment。

4、Fragment静态加载办法

加载步骤

1. 新建类继承fragment
2. 重写oncreatview方法
3. 使用layoutflater对象中的inflate方法绑定布局和控件
4. 在activity对应的布局文件中过标签引用

示例代码

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <fragment
            android:id="@+id/frgment_a"
            android:name="com.homework.activity.daysix.fragment.FragmentA"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"/>

        <fragment
            android:id="@+id/fragment_b"
            android:name="com.homework.activity.daysix.fragment.FragmentB"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"/>
    LinearLayout>

5、Fragment动态加载办法

加载步骤

1. 新建类继承fragment
2. 重写oncreatview方法
3. 使用layoutflater对象中的inflate方法绑定布局和控件
4. 使用FragmentManger和FragmentTransaction对象进行动态加载

示例代码

case R.id.nvzhaung:
//显示女装的fragment
if(NvZhaungFragment==null){
NvZhaungFragment=new NvZhaungFragment();
}
FragmentManager manager=getFragmentManager();//创建FragmentManger对象
FragmentTransaction transaction=manager.beginTransaction();//创建FragmentTransaction
transaction.replace(R.id.shop,NvZhaungFragment);
transaction.commit();//最后一步提交
  1. FragmentTrasactin方法:

    • add:往Activity中添加一个Fragment
    • remove:从Activity中移除一个Fragment
    • replace:使用另一个Fragment替换当前的Fragment
    • hide:隐藏当前的Fragment
    • show:显示之前隐藏的Fragment
    • commit:提交一个事务
  2. commit方法

    • 当所有准备工作完成后,必须调用commit方法才能执行和生效
    • 相当于Toast中的show方法,不调用此方法,不会执行

6、Viewpager+Fragment实现页卡滑动切换

使用v4包

 .support.v4.view.ViewPager
        android:id="@+id/wx_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    .support.v4.view.ViewPager>

动态切换

 public void onClick(View view) {
        switch (view.getId()){
            case R.id.contact_btn:
                viewPager.setCurrentItem(0);
                break;
            case R.id.friend_btn:
                viewPager.setCurrentItem(1);
                break;
            case R.id.news_btn:
                viewPager.setCurrentItem(2);
                break;
            default:
                break;
        }
    }

创建适配器

MyPagerAdapter adapter=new MyPagerAdapter(getSupportFragmentManager(),fragmentList);

绑定适配器

  viewPager.setAdapter(adapter);

你可能感兴趣的:(Fragment)