Viewpager+fragment
来源:互联网 发布:java和net哪个比较好 编辑:程序博客网 时间:2024/06/06 04:22
Viewpager+fragment的使用
Fragment嵌套在ViewPager 对应的两个adapter
- FragmentStatePagerAdapter
- FragmentPagerAdapter
FragmentStatePagerAdapter
适用于相对静态,数据量较少的网页,所有生成的fragment都会保存在内存中 ,因此对于数据量较大的应用来说,不太适用,易导致OOM
FramgnetPagerAdapter
只会保存视线中的Framgent 也就是当前显示的Fragment其余的Framgent会被销毁释放内存,不会占用系统更多的内存.
针对他们的优缺点(反正我就要用第二个…)对于我需求更准确的是FramgnetPagerAdapter
首先是FragmentPagerAdapter的实现类:
public class FragAdapter extends FragmentStatePagerAdapter { private ArrayList<BaseFragment> fragList; public FragAdapter(FragmentManager fm, ArrayList<BaseFragment> fragList) { super(fm); this.fragList=fragList; } @Override public Fragment getItem(int position) { return fragList.get(position); } @Override public int getCount() { return fragList.size(); }}
然后创建对应的Fragment ,这里我们就创建空的Fragment背景是不同颜色的用于区分即可.
public class MyFragment extends Fragment { public MyFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_my, container, false); }}
这里没什么可说的,背景颜色自己设置一下用于区分即可.
MainActivity的布局:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.myapplication.MainActivity"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/viewPager" ></android.support.v4.view.ViewPager></RelativeLayout>
MainActivity的代码:
public class MainActivity extends AppCompatActivity { private ArrayList<Fragment> list; private MyFragAdapter adapter; private ViewPager pager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list=new ArrayList<Fragment>(); MyFragment fragment1=new MyFragment(); MyFragment fragment2=new MyFragment(); MyFragment fragment3=new MyFragment(); list.add(fragment1); list.add(fragment2); list.add(fragment3); adapter=new MyFragAdapter(getSupportFragmentManager(),list); pager= (ViewPager) findViewById(R.id.viewPager); pager.setAdapter(adapter); }}
颜色我没有设置 偷个懒 运行都没运行 小DEMO
0 0
- Fragment+ViewPager
- Viewpager&Fragment
- viewpager + fragment
- viewpager+fragment
- viewpager+fragment
- ViewPager+Fragment
- viewPager+fragment
- ViewPager+Fragment
- ViewPager+Fragment
- viewpager+fragment
- Fragment+ViewPager
- ViewPager+Fragment
- Fragment+ViewPager
- viewpager fragment
- Fragment+ViewPager
- viewpager +Fragment
- viewpager+fragment
- Viewpager+fragment
- 数据结构实验之栈六:下一较大值(二)
- golang ssh 连接交换机
- java将两个集合合并,去除重复
- 在html页面上使用ajax传递json数据到基于express框架(node.js)的服务器
- Python学习笔记四:过程控制
- Viewpager+fragment
- (NYoj 171)聪明的kk --水dp
- php三天基础笔记(5)变量类型转换
- nginx rtmp module install compile
- 例题4-4 信息解码 UVa213
- openstack nova 源码解析 — Nova API 执行过程从(novaclient到Action)
- C++ :STL 算法unique , unique_copy函数
- net rtmp or hls play url
- Linux用ps命令查找进程PID再用kill命令终止进程的方法