精华内容
参与话题
问答
  • Viewpager

    2018-10-25 20:28:07
    ublic class MainActivity extends AppCompatActivity { ...private ViewPager viewpager_vp; // 建立一个ArrayList集合.泛型指定为ImageView. private ArrayList ImageViews = new ArrayList();...

    ublic class MainActivity extends AppCompatActivity {
    // 将ViewPager定义为全局变量,方便使用.
    private ViewPager viewpager_vp;
    // 建立一个ArrayList集合.泛型指定为ImageView.
    private ArrayList ImageViews = new ArrayList();
    //图片int数组资源
    private int[] imageResIds = {
    R.drawable.a,
    R.drawable.b,
    R.drawable.c,
    R.drawable.d,
    R.drawable.e,
    };
    //图片字符串数组String[]资源.
    private String[] descs = {
    “巩俐不低俗,我就不能低俗”,
    “扑树又回来啦!再唱经典老歌引万人大合唱”,
    “揭秘北京电影如何升级”,
    “乐视网TV版大派送”,
    “热血屌丝的反杀”,
    };

    private LinearLayout ll_dot;
    private TextView viewPager_tv;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //对控件进行初始化
        init();
    }
    
    /**
     * 对VIewPager进行初始化.
     */
    private void init() {
        //找到可以设置点的容器LinearLayout的对象,进行点的添加
        ll_dot = (LinearLayout) findViewById(R.id.ll_dot);
        //找到文本的对象.
        viewPager_tv = (TextView) findViewById(R.id.ViewPager_tv);
    
        //找到VIewPager对象.
        viewpager_vp = (ViewPager) findViewById(R.id.viewpager_vp);
    
        //更加图片int数组资源的数量,动态的创建ImageView控件.就是有几张图片,创建几个ImageView,for循环
        for (int x = 0; x < imageResIds.length; x++) {
            //创建ImageView对象
            ImageView imageView = new ImageView(this);
            //通过该对象添加图片资源..setBackgroundResource方法.
            imageView.setBackgroundResource(imageResIds[x]);
            //把控件添加到集合ImageViews中去,以方便在VIewPager的适配器里instantiateItem方法获取.
            ImageViews.add(imageView);
            //进行点的添加,其个数和图片的个数一致,因此放到该循环中,
            createDot(x);
        }
    
        //设置适配器.setAdapter
        viewpager_vp.setAdapter(new MyViewpagerAdapter());
    
        //设置ViewPager的滑动监听器,addOnPageChangeListener,set的方法因为名字的原因被淘汰了
        viewpager_vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                //同过getCurrentItem方法拿到当前用户所交互ViewPager的item位置.
                int currentItem = viewpager_vp.getCurrentItem();
                //通过得到的这个item,给text和点进行选中的设置.
                changeTextandDot(currentItem);
            }
            @Override
            public void onPageSelected(int position) {
    
            }
            @Override
            public void onPageScrollStateChanged(int state) {
    
            }
        });
    
    
    }
    
    /**
     * 注意:看一个方法或类的信息快捷键:Ctrl+Q;
     * 像ListVIew一样,创建一个ViewPager的适配器,自定义一个类继承PagerAdapter
     */
    class MyViewpagerAdapter extends PagerAdapter {
        //getContent,设置ViewPager的条目个数.一般就是集合或者资源数组的长度.
        @Override
        public int getCount() {
            return ImageViews.size();
        }
    
        //isViewFromObject,判断ViewPager的条目View对象和InstantiateItem返回的Object对象是否一致,固定格式:return view==object;
        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }
    
        //Ctrl+H:看到一个类的基础结构图    ctrl+h+l:快速格式化.
        //instantiateItem,ViewPager添加条目的操作.container:VIewPager的化身,控件都是添加到他身上,position:代表用户滑动条目的位置
        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            //根据条目所在位置(利用Position),从ImageViews集合里获取相对应的ImageVIew图片.
            ImageView imageView = ImageViews.get(position);
            //把得到ImageView对象,添加给VIewPager对象,也就是container,使用addView
            container.addView(imageView);
            //注意:你添加给VIewPager什么控件,就要返回该控件,给isViewFromObject进行比较判断,这里添加的是ImageView,返回的就是ImageView
            return imageView;
        }
    
        //防止内存泄漏.相当于ListView的复用container,销毁一个page,该方法的实际就是将instantiateItem返回的VIew对象从ViewPager中移除,
        //container:还是ViewPager控件自身 position: object:则代表了View控件,使用时要强转成View一下
        //补充:为什么参数是Object,而不直接是View,因为虽然99%是view,但也有可能是Fragment,所以用Object,提高了可扩展性.
        //构造方法删除后,也是固定格式:container.removeView((View) object);
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }
    }
    
    /**
     * 根据ViewPager的item的变化,也就是图片切换的操作,设置对应的点和文本.
     * @param  position int ViewPager的item,也是图片的位置
     */
    public void changeTextandDot(int position){
        //根据ViewPager的item的变化,设置对应的文本.setText(descs[position]);
        viewPager_tv.setText(descs[position]);
        //对点进行判断是否是当前页的点,用for循环,拿到所有点的位置,然后和position对比
        for(int x=0; x< imageResIds.length; x++){
            //.getChildAt(x);拿到容器的子控件.得到VIew对象
            View childAt = ll_dot.getChildAt(x);
            //为View设置背景图片,,使用三元运算符.
            childAt.setBackgroundResource(x==position?R.drawable.dot_focus:R.drawable.dot_normal);
        }
    
    }
    
    /**
     * 更加图片资源的数量,动态的创建点
     */
    private void createDot(int x) {
        //创建一个View对象;
        View view= new View(this);
        //为这个View对象设置背景setBackgroundResource
        view.setBackgroundResource(R.drawable.dot_normal);
        //为View对象设置宽高参数,使用参数对象LayoutParams(int,int),给哪个容器,就用哪个容器创建
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(8,8);
        //使用参数对象LayoutParams.leftMargin=int,相当于布局里的padding.
        layoutParams.leftMargin=8;
        //把准备好的layoutParams参数对象,设置给View对象.setLayoutParams
        view.setLayoutParams(layoutParams);
        //最后容器对象.addView(VIwe);
        ll_dot.addView(view);
    }
    
    展开全文
  • viewpager

    2019-06-03 09:17:24
    描述:viewpager+fragment,fragment会由fragmentManager进行管理,viewpager会从fragmentmanager中取fragment,即使list更新,数据也不会更新。fragmentmanager中是否存在已有的fragent主要是根据给fragment设置的...

    缓存问题
    描述:viewpager+fragment,fragment会由fragmentManager进行管理,viewpager会从fragmentmanager中取fragment,即使list更新,数据也不会更新。fragmentmanager中是否存在已有的fragent主要是根据给fragment设置的tag值决定的。而默认都是下面这个方法设置的tag值。当position(tag)值重复的时候就会导致数据错乱问题。要想不使用fragmentManager的缓存,tag值只要设置唯一即可。

    @Override
    public long getItemId(int position) {
        return position;
    }
    
    展开全文
  • ViewPager

    2016-12-05 15:45:55
    ViewPager是安卓3.0以上可以使用的控件,功能就是使视图左右滑动.在android.support.v4.view包下,是个扩展的自定义控件.故使格式:在布局文件里应该是android.support.v4.view.ViewPager 注意ViewPager的内部pager...

    ViewPager是安卓3.0以上可以使用的控件,功能就是使视图左右滑动.在android.support.v4.view包下,是个扩展的自定义控件.故使格式:在布局文件里应该是android.support.v4.view.ViewPager


    注意ViewPager的内部pager页面不能使用Activity与Fragment原因:

    不能使用activity的原因:viewpager中存放是的view控件,activity不能返回view,activity是不能在veiwpager中使用


    不能使用Fragment的原因:(以下是特有现象,但如果不是这种fragment多次嵌套fragment的话,可以使用fragment)

    因为之前已经使用了HomeFragment,在接下来的操作还会有新界面创建,这样就会出现一个Fragment中使用了另一fragment,另一个fragment中又使用了一个fragment的现象,对于小内存的手机来说,容易内存溢出(OOM).


    1.在所要使用的Activity的布局xml文件里定义这个组件,

        <android.support.v4.view.ViewPager   

            android:id="@+id/viewpager"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content" />

     

    2.在Activity里找到ViewPager控件,并得到ViewPager控件对象.

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

     

    3.准备数据,创建ArrayList集合,在创建一个承载数据类型的bean类,把数据添加到bean类中,再把bean类挨个添加到集合中.

     

    4.为ViewPager设置Adapter适配器

        vewPager.setAdapter(new 自定义的适配器类());

     

    5.创建一个自定义的ViewPager适配器内部类,要继承ViewPager,并复写其方法


      class MyAdapter extends PagerAdapter{

    	//ViewPager滑动的次数

    public int getCount() {

    //设置数小的话,图片到头了就没法循环出现,要想循环播放,一般指定50000次即可.return 50000;

    //且报空指针异常的地方(一般和获取ViewPager当前选中的是第几页有关的都要改为position(当前页数)%list.size()(取余数)

         return list.size();

    }


    提示:如果想要ViewPager能向左滑动,只需要在主线程,

    改变ViewPager的默认选中位置即可:viewPager.setCurrentItem(int);

     

           

    	//该函数用来判断instantiateItem(ViewGroup, int)函数所返回来的Key
    	// 与一个页面视图是否是代表的同一个视图(即它俩是否是对应的,对应的表示同一个View)

    public boolean isViewFromObject(View view, Object object) {

    return view == object;//这里是固定写法,一般不用变,写死了.

    }

    创建Pager的方法,相当于BaseAdapter的getView方法,很重要.(就是没有position类似的参数,所以没有优化)一般在该方法中要加载并返回View对象,并且要绑定数据,但是不需要复用Pager了,且返回container没有用.

    //注意:是参数为ViewGroup container(container代表了ViewPager控件自身)的instantiateItem方法第二个,不要弄错了

            public Object instantiateItem(ViewGroup container, int position) {

                //1.加载View

                ImageView imageView = new ImageView(MainActivity.this);

                imageView.setScaleType(ScaleType.FIT_XY);//设置所包裹的图片占满整个屏幕

                //2.绑定数据到View

                imageView.setImageResource(list.get(position).getIconId());

                //注意:必须要将控件对象添加到VIewPager中来

                container.addView(imageView);

                return imageView;

            }



    /**防止内存泄漏.相当于ListView的复用container

    * 销毁一个page,该方法的实际就是将instantiateItem返回的VIew对象从ViewPager中移除,

    container:还是ViewPager控件自身,object:则代表了View控件,使用时要强转成View一下

    补充:为什么参数是Object,而不直接是View,因为虽然99%是view,但也有可能是Fragment,所以用Object,提高了可扩展性.

    */

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

    //super.destroyItem(container, position, object);此方法一定要删掉.

    container.removeView((View) object);

    }

     

    6.为ViewPager设置页面切换监听器.并在onPageSelected里进行文本的设置(所有的 position : 条目的位置)

    viewPager.addOnPageChangeListener(new OnPageChangeListener() {//也可以是setOnPageChangeListener,二者是一样的,只不过set被淘汰了

    //Viewpager的页面pager切换完成时,执行该方法

    public void onPageSelected(int position) {

    Log.e("log","当页面改变时执行:onPageSelected");

        updateTitleAndDot()//记得在第4步,为ViewPager设置Adapter适配器下面,调用该方法,使ViewPager一创建,第一个页面就有文本数据

    }

     

    //ViewPager控件处于滑动中,执行该方法

    参数信息  positionOffset:页面移动距离的百分比例     positionOffsetPixels : 移动的偏移的像素

    注意:positionOffsetPixels,positionOffset:会随着页面向右滑动而不断增加(无限接近于1),但当完全滑动到另一页时,数据就变成了0.0

    public void onPageScrolled(int position, float positionOffset,int positionOffsetPixels) {

    Log.d("log","当页面处于滑动中时执行:onPageScrolled");

    }

     

    //当ViewPager控件被点击或松开时(也可以理解为pager滑动状态改变时),执行该方法

    public void onPageScrollStateChanged(int state) {

    Log.i("log","当页面时执行:onPageScrollstateChanged");

    }

     }

    );

    展开全文
  • ViewPager 详解(一)---基本入门

    万次阅读 多人点赞 2014-08-09 09:48:01
    前言:这两天研究研究ViewPager滚动功能,现在很多的app都有用到这个功能,我们的大虾米也有这个模块。要研究就彻底的研究研究,我从不满足于一个功能只是简单的应用,要学就学的彻底,所以我打算将ViewPager 分几篇...

    前言:这两天研究研究ViewPager滚动功能,现在很多的app都有用到这个功能,我们的大虾米也有这个模块。要研究就彻底的研究研究,我从不满足于一个功能只是简单的应用,要学就学的彻底,所以我打算将ViewPager 分几篇写,研究的哪个程度就写到哪个程度吧。今天是第一篇,基本入门篇 。

     

     

    相关文章:

    1、《ViewPager 详解(一)---基本入门》

    2、《ViewPager 详解(二)---详解四大函数》

    3、《ViewPager 详解(三)---PagerTabStrip与PagerTitleStrip添加标题栏的异同》

    4、《ViewPager 详解(四)----自主实现滑动指示条》

    5、《ViewPager 详解(五)-----使用Fragment实现ViewPager滑动》

     

    首先让大家有个全局的认识,直接上个项目,看看仅仅通过这几行代码,竟然就能完成如此强悍的功能。下篇再结合API仔细讲讲为什么要这么写。

    效果图:

    实现了三个view间的相互滑动

                         第一个VIEW向第二个VIEW滑动       第二个VIEW向第三个VIEW滑动

       

    一、新建项目,引入ViewPager控件

    ViewPager。它是google SDk中自带的一个附加包的一个类,可以用来实现屏幕间的切换。

    1.在主布局文件里加入

     

     

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        tools:context="com.example.testviewpage_1.MainActivity" >
    
    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />
    
    </RelativeLayout>

     

    其中 <android.support.v4.view.ViewPager /> 是ViewPager对应的组件,要将其放到想要滑动的位置

    2、新建三个layout,用于滑动切换的视图

    从效果图中也可以看到,我们的三个视图都非常简单,里面没有任何的控件,大家当然可以往里添加各种控件,但这里是个DEMO,只详解原理即可,所以我这里仅仅用背景来区别不用layout布局。

    布局代码分别如下:

    layout1.xml

     

    <?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:background="#ffffff"
        android:orientation="vertical" >
        
    
    </LinearLayout>

    layout2.xml

     

     

    <?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:background="#ffff00"
        android:orientation="vertical" >
        
    
    </LinearLayout>
    

    layout3.xml

     

    <?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:background="#ff00ff"
        android:orientation="vertical" >
        
    
    </LinearLayout>
    
    

     

    二、代码实战

    先上整体代码,然后逐步讲解。

    package com.example.testviewpage_1;
    /**
     * @author  harvic
     * @date 2014.8.9
     */
    import java.util.ArrayList;
    import java.util.List;
    import java.util.zip.Inflater;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    
    public class MainActivity extends Activity {
    
    	private View view1, view2, view3;
    	private ViewPager viewPager;  //对应的viewPager
    	
    	private List<View> viewList;//view数组
       
       
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            viewPager = (ViewPager) findViewById(R.id.viewpager);
            LayoutInflater inflater=getLayoutInflater();
            view1 = inflater.inflate(R.layout.layout1, null);
            view2 = inflater.inflate(R.layout.layout2,null);
            view3 = inflater.inflate(R.layout.layout3, null);
            
            viewList = new ArrayList<View>();// 将要分页显示的View装入数组中
    		viewList.add(view1);
    		viewList.add(view2);
    		viewList.add(view3);
    		
    		
    		PagerAdapter pagerAdapter = new PagerAdapter() {
    			
    			@Override
    			public boolean isViewFromObject(View arg0, Object arg1) {
    				// TODO Auto-generated method stub
    				return arg0 == arg1;
    			}
    			
    			@Override
    			public int getCount() {
    				// TODO Auto-generated method stub
    				return viewList.size();
    			}
    			
    			@Override
    			public void destroyItem(ViewGroup container, int position,
    					Object object) {
    				// TODO Auto-generated method stub
    				container.removeView(viewList.get(position));
    			}
    			
    			@Override
    			public Object instantiateItem(ViewGroup container, int position) {
    				// TODO Auto-generated method stub
    				container.addView(viewList.get(position));
    				
    				
    				return viewList.get(position);
    			}
    		};
    		
    		
    		viewPager.setAdapter(pagerAdapter);
    		
        }
    
    
    }

    代码量很小,全部放在了OnCreate()函数中。

     

    1、先看声明的变量的意义:

     

     

    private View view1, view2, view3;
    private List<View> viewList;//view数组
    private ViewPager viewPager;  //对应的viewPager

     

    首先viewPager对应 <android.support.v4.view.ViewPager/>控件。

    view1,view2 ,view3对应我们的三个layout,即layout1.xml,layout2.xml,layout3.xml

    viewList是一个View数组,盛装上面的三个VIEW

    2、接下来是他们的初始化过程:

     

    viewPager = (ViewPager) findViewById(R.id.viewpager);
    LayoutInflater inflater=getLayoutInflater();
    view1 = inflater.inflate(R.layout.layout1, null);
    view2 = inflater.inflate(R.layout.layout2,null);
    view3 = inflater.inflate(R.layout.layout3, null);
    
    viewList = new ArrayList<View>();// 将要分页显示的View装入数组中
    viewList.add(view1);
    viewList.add(view2);
    viewList.add(view3);

    初始化过程难度不大,就是将资源与变量联系起来布局,最后将实例化的view1,view2,view3添加到viewList中

     

    3、PageAdapter——PageView的适配器

     

    适配器这个东东想必大家都不莫生,在ListView中也有适配器,listView通过重写GetView()函数来获取当前要加载的Item。而PageAdapter不太相同,毕竟PageAdapter是单个VIew的合集。

    PageAdapter 必须重写的四个函数:

     

    • boolean isViewFromObject(View arg0, Object arg1)
    • int getCount() 
    • void destroyItem(ViewGroup container, int position,Object object)
    • Object instantiateItem(ViewGroup container, int position)

     

    先看看各个函数,我们上面都做了什么吧:

     

    @Override
    public int getCount() {
    	// TODO Auto-generated method stub
    	return viewList.size();
    }

    getCount():返回要滑动的VIew的个数

     

     

    @Override
    public void destroyItem(ViewGroup container, int position,
    		Object object) {
    	// TODO Auto-generated method stub
    	container.removeView(viewList.get(position));
    }
    

    destroyItem():从当前container中删除指定位置(position)的View;

     

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
    	// TODO Auto-generated method stub
    		container.addView(viewList.get(position));
    		
    		
    		return viewList.get(position);
    	}
    };

    instantiateItem():做了两件事,第一:将当前视图添加到container中,第二:返回当前View

     

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
    	// TODO Auto-generated method stub
    	return arg0 == arg1;
    }

    isViewFromObject():对于这个函数就先不做讲解,大家目前先知道它要这样重写就行了,后面我们会对它进行改写。

     

    下一篇,我将仔细讲解这几个函数的意义,与有关Key的知识,当然最后也会有个例子给大家。这篇就到这了。

     

    源码地址:http://download.csdn.net/detail/harvic880925/7733249

     

    请大家尊重原创者版权,转载请标明出处:http://blog.csdn.net/harvic880925/article/details/38453725  万分感激!!!!!

    如果你喜欢我的文章,你可能更喜欢我的公众号

    启舰杂谈

     

    展开全文
  • ViewPager 详解(五)-----使用Fragment实现ViewPager滑动

    万次阅读 多人点赞 2014-08-18 15:03:51
    前言:前几篇文章讲解了ViewPager的普通实现方法,但android官方最推荐的一种实现方法却是使用fragment,下面我们使用fragment来重新实现一下第一篇《ViewPager 详解(一)---基本入门》所实现的效果。 系列文章...
  • Android ViewPager使用详解

    万次阅读 多人点赞 2012-11-10 21:34:06
    viewpager就是其中之一利用它,我们可以做很多事情,从最简单的导航,到页面菜单等等。那如何使用它呢,与LisstView类似,我们也需要一个适配器,他就是PagerAdapter。看一下api的图片, ViewPager的功能就是可以...
  • ViewPager 详解(二)---详解四大函数

    万次阅读 多人点赞 2014-08-11 09:29:26
    前言:上篇中我们讲解了如何快速实现了一个滑动页面,但问题在于,PageAdapter必须要重写的四个函数,它们都各有什么意义,在上节的函数内部为什么要这么实现,下面我们就结合android...3、《ViewPager 详解(三)-...
  • 如上图所示,应用首页一个Viewpager和一个RadioButton组成,而在viewpager中添加四个Fragement,通过滑动或者点击RadioButton可以进行Fragement间的切换,在第一个Fragement中添加了一个3s轮播Viewpager切换图片。...
  • viewpager自定义: @Override public boolean onTouchEvent(MotionEvent ev) { // TODO Auto-generated method stub L.i(TAG, "onTouchEvent"); return super.onTouchEvent(ev); } @Override public ...
  • ViewPager,ScrollView 嵌套ViewPager滑动冲突解决

    万次阅读 多人点赞 2016-10-26 22:32:31
    ViewPager,ScrollView 嵌套ViewPager滑动冲突解决这篇博客主要讲解一下几个问题 - 粗略地介绍一下View的事件分发机制 - 解决事件滑动冲突的思路及方法 - ScrollView 里面嵌套ViewPager导致的滑动冲突 - ...
  • ViewPager加载Activity

    千次下载 热门讨论 2012-10-26 18:16:41
    ViewPager滑动切换Activity,类似于新浪微博的消息模块
  • 前言:在前两篇文章中,我们讲解了滑动页面的的实现方法与四大函数的意义,但有时,仅仅实现页面滑动是不够的,还要有标题栏才会显得更友好。所以在这篇文章中,我将会向大家展示在android.support.v4包中的两个控件...
  • viewPager = (ViewPager) findViewById(R.id.viewpager); initViewPagerContainter(); //初始viewPager viewPagerAdapter = new ViewPagerAdapter(); //设置adapter的适配器 viewPager.setAdapter...
  • private ViewPager viewPager; /** 页面list **/ ArrayList<Fragment> fragmentList = new ArrayList(); @Override public void onCreate(Bundle savedInstanceState) { viewPager = ...
  • 不清楚,既然PagerTabStrip是嵌套在ViewPager里面的,那么我把ViewPager设置成match,而ViewPager里面也只有PagerTabStrip一个控件,但都只能设置为wrap_content,这里还有一个小问题,就是PagerTabStrip控件下设置...
  • 最近学习了viewPager的用法,但是发现当手动滑动viewPager时无法实现无限循环,网上百度了一下,大家都是用的通过设置count的长度为一个很大的值,比如Integer.MAX_VALUE,再用取余的方法去添加view,老师也是这样讲的...
  • Fragment中嵌套ViewPager,ViewPager中有好几个Fragment实现滑动,其中一个Fragment中有照相功能。在Activity中的拍照实现很简单,但是在Fragment中实现拍照,尤其是多层嵌套下的Fragment中更不好实现。 我这个是...
  • private ViewPager viewPager; private ArrayList<View> views = new ArrayList(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R...
  • React Native版本的ViewPager控件,自动播放,无限循环。项目地址:https://github.com/race604/react-native-viewpager 效果图:使用说明: 运行 npm 安装 react-native-viewpager --save代码如下:var ViewPager...
  • ViewPager嵌套ViewPager

    千次阅读 2017-10-17 15:15:47
    两个ViewPager嵌套,实现无限循环即:A(1)-A2(B1)-A2(B2)-A(1) A:父ViewPager 有2个选项,B:为子ViewPager.同样有2个选项 A2即为B.
  • ViewPager 全面总结

    万次阅读 多人点赞 2018-03-01 11:41:14
    Viewpager,视图翻页工具,提供了多页面切换的效果。Android 3.0后引入的一个UI控件,位于v4包中。低版本使用需要导入v4包,但是现在我们开发的APP一般不再兼容3.0及以下的系统版本,另外现在大多数使用Android ...
  • viewpager嵌套viewpager

    2016-08-30 16:37:38
    1. MainActivty下4个Fragment组成第一个viewpager 2. 第一个Fragment下再次使用Viewpager,旗下集成2个子Fragment 3. 备注:ViewPager支持禁止滑动(项目可能需求) 3. ToolList 1. import android.support.v4....
  • 如何在viewpager 中的主Activity中得到其他页面的Button public class MainActivity extends Activity { private LinearLayout indexLayout; private ImageView[] indexViews=new ImageView[4]; private ...
  • Android(ViewPager中的ViewPagerViewPager FragmentPagerAdapter嵌套子ViewPager FragmentPagerAdapter页面不能正常显示问题 Android的ViewPager如果只使用一“层” FragmentPagerAdapter构建ViewPager,那么将...
  • 如题,ScrollView中嵌套了viewpager,可以上下划和左右划,viewpager中嵌套listview,滑动冲突解决了,却出现了高度不适应问题, 第一页加载正常,第二页内容比第一页少,可是高低却和第一页一样,这样就会出现大片...

空空如也

1 2 3 4 5 ... 20
收藏数 33,045
精华内容 13,218
关键字:

viewpager