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,代码如下:
import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; 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:
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import java.util.List; 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碎片就成了!
更多问题加群:584275290
网友评论