Fragment,android碎片开发的必备物品,之前一直都是cy同事的代码,从没仔细去看看,后来独立开发了,也是网上去找开源的直接套用.但天不遂人愿,产品的一个小改动,开源库却无法满足需求了!想了想,还是自己写吧.
仔细看了文档和一些博客,才突然明白,Fragment的使用居然简单此令人发指······,开发了一年半才俯下身子学Fragment,感觉有点汗颜!
所有的东西,都是自己写,废话不多说,上码!
先上布局代码:
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<View
android:layout_width="match_parent"
android:background="#000"
android:layout_height="0.5dp"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="48dp">
<TextView
android:id="@+id/manager_tv"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="48dp"
android:layout_marginLeft="5dp"
android:background="@null"
android:gravity="center"
android:text="管理"
android:textColor="#3eb0ff"
android:textSize="12sp"/>
<View
android:id="@+id/message_red"
android:layout_width="0.5dp"
android:background="#000"
android:layout_height="match_parent"
/>
<TextView
android:id="@+id/message_tv"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="48dp"
android:layout_marginLeft="5dp"
android:background="@null"
android:gravity="center"
android:text="消息"
android:textSize="12sp"/>
</LinearLayout>
效果图:
到主界面中初始化控件,新建MangerFragment,代码如下:
public class MangerFragment extends Fragment {
protected Context mActivity;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle
savedInstanceState) {
return inflater.inflate(R.layout.activity_manager, container, false);
}
@Override
public void onAttach(Context context) {
this.mActivity = context;
super.onAttach(context);
}
}
布局文件代码和图片:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:hjm="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">
<TextView
android:id="@+id/manager_tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:background="@null"
android:gravity="center"
android:text="我是管理"
android:textColor="#3eb0ff"/>
</LinearLayout>
同理新建MessageFragment!接下来就是初始化Fragment,添加到viewPager中去.
private void initFragment() {
list = new ArrayList<Fragment>();
list.add(new MangerFragment());
list.add(new MessageFragment());
// 把fragment和ViewPager关联起来
DataCompareFragmentAdapter adapter = new DataCompareFragmentAdapter(getSupportFragmentManager(), list);
mPager.setAdapter(adapter);
}``
DataCompareFragmentAdapter:
public class DataCompareFragmentAdapter extends FragmentPagerAdapter {
private List<Fragment> mFragments;
public DataCompareFragmentAdapter(FragmentManager fm, List<Fragment> mFragments) {
super(fm);
this.mFragments = mFragments;
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getCount() {
return mFragments.size();
}
}
启动你的App,一个简单的Fragment碎片就成了!