viewpager(Viewpager是android哪个版本出现的)
本文目录
- Viewpager是android哪个版本出现的
- 如何实现viewpager无限循环
- 用viewpager实现了切屏,但是怎么跳转到指定的选项卡
- android viewpager怎么用
- viewpager 怎么刷新view
- viewpager是什么做什么用的怎么实现
- 如何让viewpager取消预加载且能有tabpageindicator
- android 如何去掉viewpager的预加载
Viewpager是android哪个版本出现的
从android sdk中可以看到,viewpager属于v4包(即我们常见的android-support-v4.jar):
java.lang.Object android.view.View android.view.ViewGroup android.support.v4.view.ViewPager
而v4对应的是android api level 4版本,也就是Android 1.6(Donut甜甜圈)。是2009年9月15日Google发布的。
如何实现viewpager无限循环
int count = adapter.getCount();if (count 》 1) { // 多于1个,才循环int index = viewPager.getCurrentItem();index = (index + 1) % count;viewPager.setCurrentItem(index, true);}但如何在手指拨动时,也支持左右无限循环的功能呢?这个问题,我折腾了好久,网上资料多不可用。比较可笑的是在适配器里,设置数量为最大值;然后,在当前位置为中间的某个值,比如: public class MyAdapter extends PagerAdapter{ @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public void destroyItem(View container, int position, Object object) { ((ViewPager)container).removeView(mImageViews); } public Object instantiateItem(View container, int position) { View view = mImageViews; ((ViewPager)container).addView(view, 0); return view; } } protected void onCreate(Bundle savedInstanceState) { viewPager.setAdapter(new MyAdapter()); //设置ViewPager的默认项, 设置为总数的100倍,一开始才能往左滑动 viewPager.setCurrentItem(count * 100); }
用viewpager实现了切屏,但是怎么跳转到指定的选项卡
步骤一:这里使用兼容低版本的v4包进行布局,这里eclipse没有输入提示,所以要手动输入,文件名称“activity_main.xml”1 《RelativeLayout xmlns:android="首先要声明ViewPager和PagerTabStrip对象,通过findViewById分别找到资源id,声明ArrayList《View》来存放测试布局文件,核心代码如下:1 package com.example.viewpager;23 import java.util.ArrayList;45 import android.os.Bundle;6 import android.app.Activity;7 import android.graphics.Color;8 import android.support.v4.view.PagerAdapter;9 import android.support.v4.view.PagerTabStrip;10 import android.support.v4.view.ViewPager;11 import android.support.v4.view.ViewPager.OnPageChangeListener;12 import android.view.Menu;13 import android.view.View;14 import android.view.ViewGroup;15 import android.widget.Toast;16 17 public class MainActivity extends Activity implements OnPageChangeListener {18 19 private ViewPager viewpager;20 private PagerTabStrip tabstrip;21 private String title={"首页","新闻","公告","图片"};22 private ArrayList《View》 views=new ArrayList《View》();23 @Override24 protected void onCreate(Bundle savedInstanceState) {25 super.onCreate(savedInstanceState);26 setContentView(R.layout.activity_main);27 viewpager=(ViewPager) findViewById(R.id.viewpager);28 tabstrip=(PagerTabStrip) findViewById(R.id.tabstrip);29 initial();30 viewpager.setAdapter(new MyPagerAdapter());31 }32 33 public void initial(){34 views.add(getLayoutInflater().inflate(R.layout.layout1,null));35 views.add(getLayoutInflater().inflate(R.layout.layout2,null));36 views.add(getLayoutInflater().inflate(R.layout.layout1,null));37 views.add(getLayoutInflater().inflate(R.layout.layout2,null));38 39 tabstrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));40 tabstrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_blue_bright));41 tabstrip.setTextColor(Color.WHITE);42 viewpager.setOnPageChangeListener(this);43 }44 class MyPagerAdapter extends PagerAdapter{45 46 @Override47 public int getCount() {48 // TODO 自动生成的方法存根49 return views.size();50 }51 52 @Override53 public Object instantiateItem(ViewGroup container, int position) {54 View v=views.get(position);55 container.addView(v);56 return v;57 }58 59 @Override60 public void destroyItem(ViewGroup container, int position, Object object) {61 // TODO 自动生成的方法存根62 //super.destroyItem(container, position, object);63 container.removeView(views.get(position));64 }65 @Override66 public boolean isViewFromObject(View arg0, Object arg1) {67 // TODO 自动生成的方法存根68 return arg0==arg1;69 }70 @Override71 public CharSequence getPageTitle(int position) {72 // TODO 自动生成的方法存根73 return title;74 }75 76 }77 @Override78 public void onPageScrollStateChanged(int arg0) {79 // TODO 自动生成的方法存根80 81 }82 83 @Override84 public void onPageScrolled(int arg0, float arg1, int arg2) {85 // TODO 自动生成的方法存根86 87 }88 89 @Override90 public void onPageSelected(int arg0) {91 // TODO 自动生成的方法存根92 //Toast.makeText(MainActivity.this,"新年快乐",Toast.LENGTH_SHORT).show();93 }94 95 }
android viewpager怎么用
一. 导入ViewPager第三方jar包android-support-v13.jar 在开发之前先在已经创建好的应用程序工程中导入jar包,方法如下: 选中应用程序工程,在eclipse的菜单栏选择Project-》properties-》Java Build Path-》Libraries-》Add External Jars中加入已经下载好的jar包。加入这个jar包之后就可以使用ViewPager类来开发相关的应用了。 举一反三,其它第三方jar包的添加应该也是走这个步骤。 二. ViewPager的使用 下面以一个简单的demo来实现ViewPager的使用,该Demo的效果图如下:该Demo总共四个页面,每个页面用一个Fragment来实现,所以分别创建FirstFragmentPage、SecondFragmentPage、ThirdFragmentPage、ForthFragmentPage四个类来实现四个页面,这个四个类都继承Fragment。这四个Fragment将在MainActivity中添加处理。以下主要代码实现: 1. 主布局文件main.xml代码如下: view plaincopy《?xml version="1.0" encoding="utf-8"?》 《LinearLayout xmlns:android=" private void initIndicator() { for (int i = 0; i 《 mViewPagerAdapter.getCount(); i ++) { ImageView imageView = new ImageView(this); imageView.setLayoutParams(new ViewGroup.LayoutParams(20,20)); imageView.setPadding(20, 0, 20, 0); if (i == 0) { imageView.setBackgroundResource(R.drawable.page_indicator_focused); } else { imageView.setBackgroundResource(R.drawable.page_indicator); } mIndicatorImage = imageView; mIndicatorGroup.addView(mIndicatorImage); } } http://blog.csdn.net/stevenhu_223/article/details/8024925
viewpager 怎么刷新view
ViewPager的数据是通过PageAdapter来装载的,刷新数据的方法有以下:调用adapter.notifyDataSetChanged(); 刷新控件,但是要覆盖PagerAdapter的getItemPosition方法,并返回 return POSITION_NONE;利用PagerAdapter的工作机制,就是PagerAdapter的执行顺序, PagerAdapter作为ViewPager的适配器,无论ViewPager有多少页,PagerAdapter在初始化时也只初始化开始的2个View,即调用2次instantiateItem方法。而接下来每当ViewPager滑动时,PagerAdapter都会调用destroyItem方法将距离该页2个步幅以上的那个View销毁,以此保证PagerAdapter最多只管辖3个View,且当前View是3个中的中间一个,如果当前View缺少两边的View,那么就instantiateItem,如里有超过2个步幅的就destroyItem。每当Adapter调用instantiateItem时,运用View.setTag方法将该View标识。当需要更新这个View的数据时,通过调用ViewPager.findViewWithTag方法找到相应的View,然后更新View中的数据。
viewpager是什么做什么用的怎么实现
viewpager是用来做左右滑动的视图容器
例如app界面的欢迎界面,可以左右滑动的容器
具体用法,建议你看视频教程
luo.apkbus.com
如何让viewpager取消预加载且能有tabpageindicator
viewpager的预加载是无法取消的。但我们可以换一种思路来实现。取消预加载无非就是你的页面没有准备齐全,数据上或其它的还不足以加载一个正确的视图。你可以对这样的页面只写一个空视图,viewpager需要的List《View》你可以组装好,也就有了tabpageindicator正确的显示。空视图可以在你数据准备好之后,用新视图来替换。空视图你可以使用某种Layout也可以用ViewStub(轻量级的视图)。
android 如何去掉viewpager的预加载
两种方式实现viewPager不加载数据。只需要设置viewPager.setOffscreenPageLimit(3);表示三个界面之间来回切换都不会重新加载。使用Adapter,每次改变数据后重新设置Adapter。MyAdapter adapter = new MyAdapter();viewPager.setAdapter(adapter); 即可。
更多文章:
塞浦路斯对苏格兰(土耳其和塞浦路斯闹纠纷,为什么不害怕欧盟)
2023年3月17日 10:27
山东鲁能泰山电力设备有限公司官网(鲁能品牌很响吗为什么一个产品打上鲁能的头衔就卖那么好)
2023年11月24日 22:05
足球比赛中替换球员应从什么处入场?7月20日,中超,广州富力vs广州恒大,比赛是否出现替补球员得分
2023年5月21日 16:34
神界原罪2小鸡皮普该不该杀?布拉克斯厨余垃圾处理器怎么样,安全吗
2023年11月27日 11:45
韦世豪妻子吴雅(小女友与韦世豪的脏辫说再见,是否因为恒大小将最近没有进球,你是怎么样看的)
2023年3月18日 23:57
崩坏3后期最强阵容是什么?为什么深足新加盟的4位外援让众多中超豪门胆战心惊
2023年3月15日 12:30
一夜3消息!湖人试训35岁老将,杜兰特能客串中锋,西蒙斯铁心走?蒙塔-埃利斯和字母哥一起打过球吗
2023年7月11日 00:26
勇士vs猛龙总决赛(勇士和猛龙总决赛G3比赛中,杜兰特全程并没有像汤普森一样坐在板凳席上,这是为什么)
2023年2月15日 11:45
为什么足球比篮球有魅力(足球迷进来说说.为什么足球比篮球影响力大)
2023年7月4日 16:36
为什么足球比赛中不允许脱衣庆祝?胡斯蒂和罗西纳在泽尼特上场机会多吗
2024年4月7日 01:45