在ViewPager的选项卡中增加的Page多余3个,如果在添加MapView的Page和间隔一个Page的那个Page直接切换,会导致地图的Page中的MapView显示黑色,代码如下:
LayoutInflater inflater = getLayoutInflater(); //第一个普通的Page view1 = inflater.inflate(R.layout.raininfo_page_1, null); view2 = inflater.inflate(R.layout.raininfo_page_2, null); //带有MapView的Page view3 = inflater.inflate(R.layout.raininfo_page_3, null); views.add(view1); views.add(view2); views.add(view3); viewPager.setAdapter(new MyViewPagerAdapter(views)); viewPager.setCurrentItem(0); viewPager.setOnPageChangeListener(new MyOnPageChangeListener());
MyViewPagerAdapter的代码:
@Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(mListViews.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(mListViews.get(position), 0); return mListViews.get(position); } @Override public int getCount() { return mListViews.size(); }
代码运行后,初始显示第一个Page,如果在第一个Page和第三个Page直接切换,就回发现,MapView会一直显示黑色。解决的办法,就是每次Adapter调用instantiateItem时重新生成加入MapView所在的Page
代码如下(先加入Page1和Page2):
view1 = inflater.inflate(R.layout.raininfo_page_1, null); view2 = inflater.inflate(R.layout.raininfo_page_2, null); views.add(view1); views.add(view2);
MyViewPagerAdapter的代码(在Adapter的instantiateItem调用时加入Page3):
@Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { if(position==2){ LayoutInflater inflater = getLayoutInflater(); view3 = inflater.inflate(R.layout.raininfo_page_3, null); stationSpreadPage=new RainInfoStationSpreadPage(RainInfoActivity.this,view3); container.addView(view3, 0); return view3; }else{ container.addView(mListViews.get(position), 0); return mListViews.get(position); } } @Override public int getCount() { return mListViews.size()+1; }
程序运行后,切换正常
相关推荐
在Android开发中,ViewPager是一个非常常用的组件,它用于展示多个页面并允许用户通过滑动来切换页面。在本文中,我们将深入探讨ViewPager的切换动画,特别是标题提到的“三种ViewPager切换动画”。首先,我们理解...
在这个"ViewPager动态添加View"的示例中,我们将深入探讨如何在运行时动态地向ViewPager中添加新的View。 首先,我们从基础开始。ViewPager是Android Support Library的一部分,它允许用户通过手势或编程方式在多个...
最后,我们在Activity中初始化`ViewPager`,设置适配器,并可能需要添加指示器(如`TabLayout`)来显示当前页面。 ```java ViewPager viewPager = findViewById(R.id.view_pager); MyPagerAdapter adapter = new ...
本教程将深入讲解如何在ViewPager中实现切换动画以及对动画时长进行控制。 首先,我们需要了解ViewPager的基本用法。ViewPager通过PagerAdapter来管理其内部的页面,PagerAdapter需要继承自PagerAdapter类,并重写`...
自定义ViewPager (禁止滑动和去除切换效果) viewPager.setNoScroll(true);//禁止手动滑动
此外,还可以利用ViewPager的`addOnPageChangeListener`方法添加页面改变监听器,实现更丰富的交互效果,比如在图片切换时显示或隐藏底部的指示点,或者播放特定的动画。 在实际应用中,你可能还需要考虑一些优化...
1. **设置ViewPager**:首先,在XML布局文件中添加`ViewPager`,并为其指定一个适配器。这个适配器需要继承`PagerAdapter`,重写`getCount()`返回宫格的总页数,以及`instantiateItem(ViewGroup container, int ...
当需要根据用户操作或特定条件动态地添加或删除页面时,就需要掌握如何在ViewPager中实现动态加载View。以下是对"android ViewPager动态添加View"这一主题的详细解释。 首先,ViewPager本身并不直接支持动态添加或...
6. **动态添加小圆点**:当`ViewPager`的页面增加时,检查当前小圆点的数量是否足够,如果不足,则创建新的小圆点并添加到容器中。同时,确保选中正确的小圆点,即新添加页面的位置。 7. **优化性能**:在处理大量...
Android ViewPager切换的七种动画,分别是:深入浅出,立方体,旋转,左右折叠,右上角进入,右下角进入和淡入淡出。
在Activity中,使用`BottomNavigationView.OnNavigationItemSelectedListener`监听菜单项的点击事件,并在`onNavigationItemSelected`方法中根据选中的菜单项更新`ViewPager`当前显示的`Fragment`。 6. **连接...
3. **关联ViewPager和PagerAdapter**:将`PagerAdapter` 设置到`ViewPager` 的`setAdapter()` 方法中,这样`ViewPager` 就知道如何加载和切换页面了。 4. **底部菜单栏实现**:可以使用`BottomNavigationView` 或...
在Android应用开发中,"头部切换页"是一种常见的设计模式,用于展示多个相关内容板块,并允许用户在这些板块之间轻松切换。通常,这种效果是通过结合`Fragment`和`ViewPager`来实现的。`Fragment`代表界面的一个可...
标题"listview添加头部viewpager"所指的就是在ListView中添加一个由ViewPager构成的头部视图,这样用户可以在浏览列表时,通过滑动头部的ViewPager查看更多的相关内容。下面将详细讲解如何实现这一功能。 首先,...
首先,ViewPager的核心功能是显示和切换多个Fragment或View,它可以自动处理用户的滑动手势,使得用户能够平滑地在不同的页面间切换。它的主要优点在于提供了一种优雅的方式,让用户在多个内容之间进行交互,而无需...
MapViewPager, 将 ViewPager Fragments 与 谷歌地图 标记连接的Android库 MapViewPager将 ViewPager Fragments 与 谷歌地图 标记连接的Android库。 查看英镑的示例 apk !通知还没有完全测试,但它在运行 ...
在Android开发中,ViewPager是一种非常常用的组件,它允许用户通过左右滑动来浏览多个页面,通常用于实现轮播图、页面切换等效果。本教程将详细介绍如何使用ViewPager实现图片切换的功能。 首先,我们需要理解...
在Android开发中,ViewPager是一个非常重要的组件,它用于展示多个页面并允许用户通过左右滑动来切换页面。这个组件在创建动态、交互丰富的应用时尤为有用。本篇将深入探讨如何实现Android ViewPager的多页面滑动...
在Android开发中,ViewPager是一个非常重要的组件,常用于实现页面间的滑动切换效果,比如在应用的引导页、Tab切换等场景。本教程将详细讲解如何利用ViewPager实现五页面的滑动切换,让读者深入了解这一功能的实现...
在Android开发中,`ActionBar`和`ViewPager`是两个非常重要的组件,它们分别用于实现界面导航和页面平滑切换。本篇文章将详细讲解如何利用`ActionBar`的`Tab`功能和`ViewPager`来构建一个既支持点击切换又支持滑动...