Android的Viewpager+Fragment懒加载

1.首先用到的库文件:https://github.com/lianghanzhen/LazyViewPager

2.xml布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.github.lianghanzhen.LazyViewPager
        android:id="@+id/lazy_view_pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        app:init_lazy_item_offset="0.3" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/txt1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="第一个"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/txt2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="第二个"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/txt3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="第三个"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/txt4"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="第四个"
            android:textSize="14sp" />
    </LinearLayout>
</LinearLayout>
3.代码
package com.lushan.adapter;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.github.lianghanzhen.LazyFragmentPagerAdapter;
import com.github.lianghanzhen.LazyViewPager;

/**
 * Created on lushan
 * Created date 2017/8/7 10:04
 */

public class TestDemo extends AppCompatActivity implements View.OnClickListener {
    private TextView txt1;
    private TextView txt2;
    private TextView txt3;
    private TextView txt4;
    private LazyViewPager lazy_view_pager;
    private TxtFragment1 txtFragment1;
    private TxtFragment2 txtFragment2;
    private TxtFragment3 txtFragment3;
    private TxtFragment4 txtFragment4;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_demo);
        txt1 = (TextView) findViewById(R.id.txt1);
        txt2 = (TextView) findViewById(R.id.txt2);
        txt3 = (TextView) findViewById(R.id.txt3);
        txt4 = (TextView) findViewById(R.id.txt4);
        lazy_view_pager = (LazyViewPager) findViewById(R.id.lazy_view_pager);
        txt1.setOnClickListener(this);
        txt2.setOnClickListener(this);
        txt3.setOnClickListener(this);
        txt4.setOnClickListener(this);
        lazy_view_pager.setAdapter(new CustomLazyFragmentPagerAdapter(getSupportFragmentManager()));
    }

    public class CustomLazyFragmentPagerAdapter extends LazyFragmentPagerAdapter {
        private CustomLazyFragmentPagerAdapter(FragmentManager fm) {
            super(fm);
        }
        @Override
        public Fragment getItem(ViewGroup container, int position) {
            switch (position) {
                case 0:
                    if (txtFragment1 == null) {
                        txtFragment1 = new TxtFragment1();
                    }
                    return txtFragment1;
                case 1:
                    if (txtFragment2 == null) {
                        txtFragment2 = new TxtFragment2();
                    }
                    return txtFragment2;
                case 2:
                    if (txtFragment3 == null) {
                        txtFragment3 = new TxtFragment3();
                    }
                    return txtFragment3;
                case 3:
                    if (txtFragment4 == null) {
                        txtFragment4 = new TxtFragment4();
                    }
                    return txtFragment4;
            }

            return null;
        }

        @Override
        public int getCount() {
            return 4;
        }

    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.txt1:
                lazy_view_pager.setCurrentItem(0);
                break;
            case R.id.txt2:
                lazy_view_pager.setCurrentItem(1);
                break;
            case R.id.txt3:
                lazy_view_pager.setCurrentItem(2);
                break;
            case R.id.txt4:
                lazy_view_pager.setCurrentItem(3);
                break;
        }
    }
}
4.输出:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值