首页 两轮车 三轮车 汽车 头条 报价 推荐 资讯 焦点 品牌 技术
首页 >  焦点 > 

Android 丝滑切换展示页的ViewPager最简单用法|环球速看料

2023-06-22 02:30:59 来源:哔哩哔哩

网上帖子都狠复杂,我整个最简单的,能用就好,希望能帮到大家:


(资料图)

用到的类列表如下,用到的具体都贴出来了,根据需要直接拿走改把。

A_LogInActivity (需要添加控件的对应类)

activity_a__log_in (就布局,我这里就添加了一个ViewPager 下面贴出来了,直接拷走)

PagerAdapater (ViewPager用到的具体类,对应的东西在里面改也行,传出去也行)

item_launch(ViewPager用到的最简单布局)

首先是用到的xml

这个放到对应的activity的xml布局里面

<android.support.v4.view.ViewPager

android:id="@+id/vp_content"

android:layout_width="match_parent"

android:layout_height="300dp" />

----------------------我是分割线-------------------------------

然后 activity   具体代码,红色部分就是新的,你可以直接拷走用:

public class A_LogInActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener {

private List<String> mStringList;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_a__log_in);

mStringList =  new ArrayList<>();

mStringList.add("1");

mStringList.add("2");// 这个随便弄 我改成要不要都行,一般都会动态创建就是了

// 构建一个商品图片的翻页适配器

PagerAdapater adapter = new PagerAdapater(this, mStringList);

// 从布局视图中获取名叫vp_content的翻页视图

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

vp_content.setAdapter(adapter); // 设置翻页视图的适配器

vp_content.setCurrentItem(0); // 设置翻页视图显示第一页  切换页面可以用这个方法

vp_content.addOnPageChangeListener(this); // 给翻页视图添加页面变更监听器

}

// 翻页状态改变时触发。state取值说明为:0表示静止,1表示正在滑动,2表示滑动完毕

// 在翻页过程中,状态值变化依次为:正在滑动→滑动完毕→静止

public void onPageScrollStateChanged(int state) {}

// 在翻页过程中触发。该方法的三个参数取值说明为 :第一个参数表示当前页面的序号

// 第二个参数表示页面偏移的百分比,取值为0到1;第三个参数表示页面的偏移距离

public void onPageScrolled(int position, float ratio, int offset) {}

// 在翻页结束后触发。position表示当前滑到了哪一个页面

public void onPageSelected(int position) {

Toast.makeText(this, "测试滑动:" + mGoodsList.get(position), Toast.LENGTH_SHORT).show();

}

}

----------------------我是分割线-------------------------------

然后是 PagerAdapater的内容,整个直接挪走改吧:

public class PagerAdapater extends PagerAdapter {

// 声明一个视图列表

private List<View> mViewList = new ArrayList<View>();

// 这个值没用了

private List<String> stringList = new ArrayList<String>();

// 图像翻页适配器的构造方法,可以根据传入的list来创建多少个页面 我这里没用到 只留下个写法

public PagerAdapater(Context context, List<String> stringList) {

stringList = stringList;

/**

* 第一个页面

* item_launch 这个是我新建的xml页面 里面就一个按钮,你完全可以自己随意新建随意改

*/

View LiView = LayoutInflater.from(context).inflate(R.layout.item_launch, null);

// 将对应的布局添加进去  add几次就会有几个页面!!!要几个页面就只管加

mViewList.add(LiView);

Button btn_start = LiView.findViewById(R.id.btn_start);

/**

* 第一个页面

*/

View LiView1 = LayoutInflater.from(context).inflate(R.layout.item_launch1, null);

mViewList.add(LiView1); // 将对应的布局添加进去

Button btn_start2 = LiView1.findViewById(R.id.btn_start);

}

// 获取页面项的个数

public int getCount() {

return mViewList.size();

}

// 判断当前视图是否来自指定对象

public boolean isViewFromObject(View view, Object object) {

return view == object;

}

// 从容器中销毁指定位置的页面

public void destroyItem(ViewGroup container, int position, Object object) {

container.removeView(mViewList.get(position));

}

// 实例化指定位置的页面,并将其添加到容器中

public Object instantiateItem(ViewGroup container, int position) {

container.addView(mViewList.get(position));

return mViewList.get(position);

}

// 获得指定页面的标题文本

public CharSequence getPageTitle(int position) {

return mGoodsList.get(position);

}

}

----------------------我是分割线-------------------------------

对应的Adapater用到的xml

这个可以随便改,随便创建,自己把名字对应上就好 

item_launch

item_launch1 两个XML我这里一样的内容  根据自己需要直接改吧

单纯就一个button,不加太多复杂的东西了

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<Button

android:layout_gravity="center_horizontal"

android:id="@+id/btn_start"

android:layout_width="300dp"

android:layout_height="45dp"

android:text="登录"

/>

</LinearLayout>

----------------------我是分割线-------------------------------

附上两张我修改好的页面截图,根据上面代码你应该能得到一个滑动切换的ViewPager

如果要像我一样点击切换就用

vp_content.setCurrentItem(0); 

方法参数代表第几个页面。

关键词:

下一篇:最后一页
上一篇:纯电家用SUV爆款来了!2024款AION V Plus真的太卷了 世界观察

相关新闻