Fragment
Android3.0开始引入了fragment,主要用来实现一个多任务的界面。
fragment是activity的子界面了,运行在activity上面的。
为了能够向下兼容低版本的API,让所有与fragment相关的API都从support.v**包中导入
Fragment经常和FrameLayout一块使用
下面来介绍一下Fragment的生命周期:
直接上代码:
创建一个Activity:
List list = new ArrayList<>();
List table = new ArrayList<>();
table.add(“话题”);
table.add(“精选”);
table.add(“分类”);
int[] a = new int[]{0,1,2};
for (int i = 0; i < table.size(); i++) {
HuaTi_Fragment huaTi_fragment = HuaTi_Fragment.newInstance(a[i]);
list.add(huaTi_fragment);
}
mAdapter = new HuaTi_Adapter(getChildFragmentManager(), list, table);
HuaTi_vp.setAdapter(mAdapter);
HuaTi_tab.setupWithViewPager(HuaTi_vp);
xml布局
<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.TabLayout
android:id="@+id/huati_tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/huati_vp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/huati_tab"></android.support.v4.view.ViewPager>
Fragment界面:
//进行传递数据 以及标记
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle arguments = getArguments();
if (arguments != null) {
mFlag = arguments.getInt(“flag”);
}
}
//在Fragemnt创建Fragemt
//TODO 生成Fragment对象并传值
public static HuaTi_Fragment newInstance(int flag) {
HuaTi_Fragment testFragment = new HuaTi_Fragment();
Bundle bundle = new Bundle();
bundle.putInt("flag", flag);
testFragment.setArguments(bundle);
return testFragment;
}
//标记可以用来选中加载不同的的布局