Fragment的使用
Fragment的使用
优点:采用fragment而不是activity来管理应用UI,可绕开Android系统activity使用规则的限制。
fragment是一种控制器对象,activity可委派它执行任务。这些任务就是管理用户界面。受管理的用户界面可以是一整屏或是整屏的一部分。
CriminalIntent项目的应用
需要的类与xml



需要添加 RecyclerView 依赖库

RecyclerView :
- 我们需要 CrimeListFragment 向用户展示crime列表,这就要用到 RecyclerView 类。
RecyclerView 是 ViewGroup 的子类,每一个列表项都是作为一个 View 子对象显示的。 - 这样可以使view循环利用,而不需要创建大量的视图
添加RecyclerView视图在布局文件中
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/crime_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
设置关联
private RecyclerView mCrimeRecyclerView;
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,
Bundle savedInstanceState){
View view = inflater.inflate(R.layout.fragment_crime_list, container,false);
mCrimeRecyclerView = (RecyclerView) view
.findViewById(R.id.crime_recycler_view);
mCrimeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return view;
}
使用viewpager
用处:让用户可以左右滑动屏幕,切换查看不同列表项的明细页面
创建CrimePagerActivity
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_crime_pager);
设置pager的adapter
mCrimes=CrimeLab.get(this).getCrimes();
FragmentManager fragmentManager = getSupportFragmentManager();
mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {
@Override
public Fragment getItem(int position) {
Crime crime = mCrimes.get(position);
return CrimeFragment.newInstance(crime.getId());
}
@Override
public int getCount() {
return mCrimes.size();
}
});
界面效果

浙公网安备 33010602011771号