学习安卓小码哥自定义控件的笔记(三)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_16845639/article/details/84939932
package com.example.wtz.viewpagerdemo;

import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.DragEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private ArrayList<TextView> mTextViews;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);

        initData();

        viewPager.setAdapter(new PagerAdapter() {
            @Override
            public int getCount() {
                return mTextViews.size();
            }

            @Override
            public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
                TextView textView = mTextViews.get((int)object);
                return view == textView;
            }

            //去创建一个View,返回出去,当前ViewPager中就会去展示这个View了,这个View会被添加到ViewPager中
            //position代表这个View要加到哪个位置去显示
            //container代表就是当前的ViewPager
            @NonNull
            @Override
            public Object instantiateItem(@NonNull ViewGroup container, int position) {
                TextView textView = mTextViews.get(position);
                container.addView(textView);
                //不要求一定是View
                return position;
            }

            //有添加就有删除,不然ViewPager的效率不行,这里负责移除一些不展示的View
            @Override
            public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
//                super.destroyItem(container, position, object);

                TextView textView = mTextViews.get((int)object);
                container.removeView(textView);
            }
        });
    }

    private void initData() {
        mTextViews = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            TextView textView = new TextView(getApplicationContext());
            textView.setTextColor(Color.RED);
            textView.setText("第" + i + "个View");
            textView.setTextSize(24);
            mTextViews.add(textView);
        }
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_16845639/article/details/84939932