- 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重写的是两个,要区分以上两者的不同点!!!