页面适配器项目实例
1、PageListActivity.java
package com.example.myhomework;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import java.util.List;
public class PageListActivity {
public static class PageListAdapter extends PagerAdapter {
private final Context context;
private final List<View> viewList;
public PageListAdapter(Context context, List<View> viewList) {
this.context = context;
this.viewList = viewList;
}
@Override
public int getCount() {
return viewList.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
/*if(container == null){
container = (ViewGroup) View.inflate(context,R.layout.layout_page,null);
viewHolder = new ViewHolder();
viewHolder.page1 = container.findViewById(R.id.page1);
container.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) container.getTag();
}
viewHolder.page1.setText((CharSequence) page1.get(position));*/
/*ViewGroup viewGroup = (ViewGroup) page.get(position).getParent();
if (viewGroup != null)
viewGroup.removeView(page.get(position));
container.addView(page.get(position));
return container;*/
container.addView(viewList.get(position));
return viewList.get(position);
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
}
}
2、MainActivity.java
package com.example.myhomework;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private final Context context = MainActivity.this;
private ViewPager page1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List<View> viewList = new ArrayList<>();
// for(int i = 0; i < 10; i++){
// page1.add();
// }
for (int i = 0; i < 6; i++) {
viewList.add(View.inflate(context, R.layout.layout_page, null));
}
PageListActivity.PageListAdapter adapter = new PageListActivity.PageListAdapter(context,viewList);
page1 = findViewById(R.id.pager);
page1.setAdapter(adapter);
}
}
3、activity_main.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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
tools:ignore="HardcodedText">
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="MissingConstraints" />
</LinearLayout>
4、layout_page.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="猪老三"
android:gravity="center"
android:textColor="#159138"
android:textSize="30sp"
tools:ignore="MissingConstraints" />
</LinearLayout >
5、成果:可以左右滑动的6个界面
界面.jpg