ViewPager(二)
来源:互联网 发布:elsevier旗下数据库 编辑:程序博客网 时间:2024/06/05 21:58
转载请注明出处:http://blog.csdn.net/mr_leixiansheng/article/details/63251977
步骤:(与ListView相似)
1、List<T> list = new ArrayList<>(); 作为数据源
2、设置适配器PagerAdapter(或者自己定义适配器)
3、ViewPager添加适配
代码如下:
1、4个布局页面(因为都相同只贴一个)
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="这是第一个界面" android:textSize="20dp" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" /></LinearLayout>
2、设置自定义适配器
package com.example.leixiansheng.myviewpager;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import java.util.List;/** * Created by Leixiansheng on 2017/3/18. */public class MyPagerAdapter extends PagerAdapter { List<View> viewList; List<String> titleList; public MyPagerAdapter( List<View> viewList,List<String> titleList) { this.viewList = viewList; this.titleList = titleList; } /** * 页面数量 */ @Override public int getCount() { return viewList.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } /** * 实例化页面 */ @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(viewList.get(position)); return viewList.get(position); } /** * 销毁页面 */ @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(viewList.get(position)); } /** * 返回标题 */ @Override public CharSequence getPageTitle(int position) { return titleList.get(position); }}
3、主程序实现ViewPager
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"> <android.support.v4.view.PagerTitleStrip android:id="@+id/pager_title" android:layout_gravity="bottom" android:layout_width="wrap_content" android:layout_height="wrap_content"> </android.support.v4.view.PagerTitleStrip> <android.support.v4.view.PagerTabStrip android:id="@+id/tab" android:layout_marginTop="100dp" android:layout_width="wrap_content" android:layout_height="wrap_content"> </android.support.v4.view.PagerTabStrip> </android.support.v4.view.ViewPager></LinearLayout>
package com.example.leixiansheng.myviewpager;import android.graphics.Color;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.PagerTitleStrip;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{ private ViewPager viewPager; private List<View> viewList; private List<String> titleList; private MyPagerAdapter adapter; //自行选择使用PagerTitleStrip、还是PagerTabStrip private PagerTitleStrip titleStrip; private PagerTabStrip tabStrip; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.view_pager); //监听 viewPager.setOnPageChangeListener(this);// titleStrip = (PagerTitleStrip) findViewById(R.id.pager_title); tabStrip = (PagerTabStrip) findViewById(R.id.tab); viewList = new ArrayList<>(); View view1 = View.inflate(this, R.layout.view1, null); View view2 = View.inflate(this, R.layout.view2, null); View view3 = View.inflate(this, R.layout.view3, null); View view4 = View.inflate(this, R.layout.view4, null); viewList.add(view1); viewList.add(view2); viewList.add(view3); viewList.add(view4); titleList = new ArrayList<>(); titleList.add("第一页"); titleList.add("第二页"); titleList.add("第三页"); titleList.add("第四页"); /** * PagerTabStrip 属性设置 */ tabStrip.setTextColor(Color.RED); tabStrip.setTabIndicatorColor(Color.BLUE); tabStrip.setDrawFullUnderline(false); adapter = new MyPagerAdapter(viewList,titleList); viewPager.setAdapter(adapter); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { Toast.makeText(this, "当前是第"+(position+1)+"个页面",Toast.LENGTH_SHORT).show(); } @Override public void onPageScrollStateChanged(int state) { }}
0 0
- ViewPager+Fragment(二)
- 王学岗ViewPager(二)
- ViewPager(二)
- ViewPager初识(二)
- Android中的ViewPager(二)
- TabLayout和ViewPager(二)
- Viewpager动画效果(二)
- ViewPager (二)
- ViewPager(二):Fragment+ViewPager实现页面滑动
- android常用控件ViewPager(二) ViewPager与Fragment
- 解析ViewPager(二)——ViewPager源码解析
- ViewPager 详解(二)---详解四大函数
- 《ViewPager 详解(二)---详解四大函数》
- ViewPager 详解(二)---详解四大函数
- ListView与ViewPager组合(二)
- ViewPager 详解(二)---详解四大函数
- ViewPager 详解(二)---详解四大函数
- ViewPager 的简单使用(二)
- MFC Windows程序设计学习笔记--MFC集合类
- asp 循环问题
- SerialPort异常问题
- join 和 yield
- 基于Mahout的电影推荐系统
- ViewPager(二)
- DNS协议
- 从Chrome源码看浏览器如何计算CSS
- 编程思想之消息机制
- 实现带有头结点的链表
- python学习-对象、类
- interface XXX is not visible from class loader
- <五大经典算法> 一、动态规划算法
- Swift 开发: 文本输入框(UITextField)的用法