起始页引导页+Fragment+viewLaout的一些简单使用

  1. List item

起始页引导页+Fragment+viewLaout的一些简单使用

下面由一些简单的介绍:

1. 首先是引导页的插入图片及滑动到最后一张图的一些点击事件

package com.bw.a618lianxi;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;

import java.util.ArrayList;
import java.util.List;

public class Main2Activity extends AppCompatActivity {
    private ViewPager viewpager;
   private  MyViewpagerAdapter myViewpagerAdapter;

    private  List<Integer> images=new ArrayList<>();
    private List<ImageView> imageViews=new ArrayList<>();
    private TextView miao;
    private TextView tiaoguo;

    private boolean flag=false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);






        tiaoguo = (TextView) findViewById(R.id.tiaoguo);

        miao = (TextView) findViewById(R.id.miao);


        viewpager = (ViewPager) findViewById(R.id.viewpager);

        images.add(R.mipmap.duanwu1);
        images.add(R.mipmap.duanwu2);
        images.add(R.mipmap.duanwu3);

        for (int i = 0; i <images.size() ; i++) {
            Integer integer = images.get(i);
            ImageView imageView=new ImageView(this);
            imageView.setImageResource(integer);
            imageViews.add(imageView);
        }

      myViewpagerAdapter=new MyViewpagerAdapter(imageViews);
        viewpager.setAdapter(myViewpagerAdapter);

         viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
             @Override
             public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

             }

             @Override
             public void onPageSelected(int position) {
                     if (position==imageViews.size()-1){
                                 tiaoguo.setVisibility(View.VISIBLE);
                                 new Thread(new Runnable() {
                                     int num=3;
                                     @Override
                                     public void run() {

                                         for (int i = 0; i <=3; i++) {
                                                runOnUiThread(new Runnable() {
                                                    @Override
                                                    public void run() {
                                                        miao.setText(num+"s后进入");
                                                        if (num==0){
                                                            Intent intent = new Intent(Main2Activity.this, MainActivity.class);
                                                            startActivity(intent);
                                                            finish();
                                                         }
                                                    }
                                                });

                                             try {
                                                 Thread.sleep(1000);
                                             } catch (InterruptedException e) {
                                                 e.printStackTrace();
                                             }
                                             num--;

                                             if (flag==true){
                                                 break;
                                             }
                                         }

                                     }
                                 }).start();
                     }
             }

             @Override
             public void onPageScrollStateChanged(int state) {

             }
         });

         tiaoguo.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 flag=true;
                 Intent intent = new Intent(Main2Activity.this, MainActivity.class);
                 startActivity(intent);
                 finish();
                 Toast.makeText(Main2Activity.this,"立即体验",Toast.LENGTH_SHORT).show();
             }
         });

    }
}

2.引导页的适配器功能代码引入图片

package com.bw.a618lianxi;

import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;

import java.util.List;

public class MyViewpagerAdapter extends PagerAdapter {

    private List<ImageView> imageView;

    public MyViewpagerAdapter(List<ImageView> imageView) {
        this.imageView = imageView;
    }

    @Override
    public int getCount() {
        return imageView.size();
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view==object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        container.addView(imageView.get(position));
        return imageView.get(position);
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        //super.destroyItem(container, position, object);

        container.removeView(imageView.get(position));
    }
}

3.进入首页的Fragment+ViewLaout的数据添加及实现滑动效果

package com.bw.a618lianxi;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;

import com.google.android.material.tabs.TabLayout;

import java.util.ArrayList;
import java.util.List;

public class Myfragment1 extends Fragment {
     private ViewPager viewPager;
     private MyFragmentpagerAdapter myFragmentpagerAdapter;
    private TabLayout tablaout;

    private int[] image={R.mipmap.a,R.mipmap.b,R.mipmap.c,R.mipmap.d,R.mipmap.e};
    private int[] image2={R.mipmap.a1,R.mipmap.b1,R.mipmap.c1,R.mipmap.d1,R.mipmap.e1};

    private List<String> title=new ArrayList<>();
     private List<Fragment> datas=new ArrayList<>();
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.myfragment1, null);
         viewPager = view.findViewById(R.id.fragment2);
         tablaout =view.findViewById(R.id.tablaout);

        return view;
    }


    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        Myfragmentone myfragmentone = new Myfragmentone();
        Myfragmenttwo myfragmenttwo = new Myfragmenttwo();
        Myfragmentthree myfragmentthree = new Myfragmentthree();
        Myfragmenttfour myfragmenttfour = new Myfragmenttfour();
        Myfragmenttfvie myfragmenttfvie = new Myfragmenttfvie();

        datas.add(myfragmentone);
        datas.add(myfragmenttwo);
        datas.add(myfragmentthree);
        datas.add(myfragmenttfour);
        datas.add(myfragmenttfvie);

        title.add("首页");
        title.add("图片");
        title.add("菜单");
        title.add("视频");
        title.add("商店");

       myFragmentpagerAdapter=new MyFragmentpagerAdapter(getChildFragmentManager(),datas,title);
       viewPager.setAdapter(myFragmentpagerAdapter);

       tablaout.setupWithViewPager(viewPager);

        for (int i = 0; i < tablaout.getTabCount(); i++) {
                 tablaout.getTabAt(i).setIcon(image[i]);
        }
        tablaout.getTabAt(0).setIcon(image2[0]);
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {


            }

            @Override
            public void onPageSelected(int position) {

                System.out.println(position);
                     if (position==1){
                         tablaout.getTabAt(0).setIcon(image[0]);
                     }

                      tablaout.getTabAt(position).setIcon(image2[position]);
                    for (int i = 0; i < tablaout.getTabCount(); i++) {
                        if (i!=position){
                            tablaout.getTabAt(i).setIcon(image[i]);
                        }

                }


            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });



    }
}

4.Fragment+ViewLaout的适配器代码如下:

package com.bw.a618lianxi;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

import java.util.List;

public class MyFragmentpagerAdapter extends FragmentPagerAdapter {

   private List<Fragment> data;
   private List<String> title;

    public MyFragmentpagerAdapter(@NonNull FragmentManager fm, List<Fragment> data,List<String> title) {
        super(fm);
        this.data = data;
        this.title=title;
    }

    public MyFragmentpagerAdapter(@NonNull FragmentManager fm, int behavior, List<Fragment> data) {
        super(fm, behavior);
        this.data = data;
    }



    @NonNull
    @Override
    public Fragment getItem(int position) {
        return data.get(position);
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return title.get(position);
    }
}

小提示:要区分fragment和引导页适配器的不同,在fragment适配器继承的是FragmentPagerAdapter,而引导页是PagerAdapter,以及引导页要重写四个方法,fragment重写的是两个,要区分以上两者的不同点!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值