viewpager

Android viewpager+ScrollView 高度冲突问题

故事扮演 提交于 2020-01-06 16:01:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 第一种 public class MyViewPager extends ViewPager { public MyViewPager( @NonNull Context context) { super(context); } public MyViewPager( @NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int height = 0; for (int i = 0; i < getChildCount(); i++) { View child = getChildAt(i); child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); int h = child.getMeasuredHeight(); if (h > height) height = h; } heightMeasureSpec =

fragment +viewpager嵌套fragment空白

Deadly 提交于 2020-01-02 18:06:19
通过断点,发现新建 fragment 对象时,没有执行生命周期, 找到原因:猜想可能是由于之前实例的fragment缓存, 解决方案:清理掉fragmentmanager中的fragment缓存 注意点: 1、fragmentmanager在fragment中要用 getChildFragmentManager() 2、Transaction的commit方法有两个,要使用 commitNow ()才能立刻清掉缓存 List<Fragment> fragmentList = getChildFragmentManager().getFragments(); boolean cache = fragmentList != null && fragmentList.size() > 0; // 先清理缓存 if (cache){ FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction(); for (Fragment fragment:fragmentList){ fragmentTransaction.remove(fragment); } fragmentTransaction.commitNow(); } 启发来源于:https://www.jianshu.com/p

ViewPager的Adapter

早过忘川 提交于 2019-12-31 21:01:16
viewPager在开发中是不少用到的,每个ViewPager都需要对应的Adapter,很简单,直接看代码: 首先,新建一个类集成 PagerAdapter ,如下: public class GiveAwayViewPagerAdapter extends PagerAdapter { private ArrayList < User > list ; private Context mContext ; public GiveAwayViewPagerAdapter ( ArrayList < User > list , Context mContext ) { this . list = list ; this . mContext = mContext ; } @Override public int getCount ( ) { return list . size ( ) ; } /** * 判断instantiateItem(ViewGroup container, int position)返回的要加载的pager对象是不是view视图, * 是则返回true并显示,不是返回false不显示。 */ @Override public boolean isViewFromObject ( View view , Object object ) { return

Android当Fragment嵌套Fragment时FragmentManager的获取问题

烈酒焚心 提交于 2019-12-29 20:39:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在项目使用了Fragment嵌入ViewPager,ViewPager每个页面都是Fragment,出现了当父Fragment切换时,子Fragment数据会无法显示。debug发现切换到包含子Fragment的父Fragment时,子Fragment生命周期并没有调用。在网上找寻后发现是FragmentManager调用不对。 当父Fragment里面嵌套子Fragment,子Fragment获取FragmentManager不能使用getFragmentManager()或getSupportFragmentManager(),应使用Fragment类下面的getChildFragmentManager()。 来源: oschina 链接: https://my.oschina.net/yuewawa/blog/3149299

ViewPager实现左右循环滑动及轮播效果(广告栏效果)

有些话、适合烂在心里 提交于 2019-12-27 22:35:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ViewPager是一个常用的android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验。此外,某些区域性的ViewPager(例如展示广告或者公告之类的ViewPager),可能需要自动轮播的效果,即用户在不用滑动的情况下就能够看到其他页面的信息。 一、PagerAdapter: 我们知道ViewPager自带的滑动效果非常出色,因此我们基本不需要处理这个滑动,只处理内容的显示。而内容的显示是由Adapter控制的,因此这里重点就是这个Adapter了。为简单起见,本例的每个View直接是一张图片。下面是Adapter的代码: ( 自定义PagerAdapter类 : 我们需要自定义一个类, 去继承PageAdapter, 至少实现下面四个方法 : destroyItem(View container, int position, Object object) : 作用 :删除container中指定位置position的页面; 参数 : container 就是容器, 这里指的是ViewPager对象, position就是删除的页面索引; int getCount() : 作用 :获取ViewPager页面的个数;

用ViewPager实现欢迎引导页面

六月ゝ 毕业季﹏ 提交于 2019-12-27 22:28:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ViewPager 需要 android-support-v4.jar 这个包的支持,来自 google 提供的一个附加包。大家搜下即可。 ViewPager 主要用来组织一组数据,并且通过左右滑动的方式来展示。 现在的大多数应用都会有一个欢迎引导页面,如图所示,通过左右滑动来告知用户一些功能特性。 这个引导图效果用 ViewPager 可以很轻松的实现。 正如前面所说, ViewPager 是用来展示一组数据的,所以肯定需要 Adapter 来绑定数据和 view 。先写一个 Adapter : 1、 布局界面比较简单,加入 ViewPager 组件,以及底部的引导小点: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id

android ViewPager滑动欢迎界面

北战南征 提交于 2019-12-27 22:08:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们看到很多应用安装后第一次打开时会出现一页一页滑动的欢迎界面,如下所示,下面就来看看实现过程 1、布局 看到这样的应用我们很容易想到它的所用组件和布局方式,就来看布局方式 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/white" > </android.support.v4.view.ViewPager>

ViewPager最后一页滑动后跳转到主页面实现方案

心已入冬 提交于 2019-12-27 21:57:20
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 思路 主要有是两个监听, 一是addOnPageChangeListener();二是setOnTouchListener(); addOnPageChangeListener()主要是为了获取position(滑动到了第几页) setOnTouchListener()主要是判断在最后一页中是否向左滑动了,然后进入主页。 主要功能代码 addOnPageChangeListener(); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { currentItem = position;//获取位置,即第几页 Log.i("Guide","监听改变"+position); } @Override public void onPageScrollStateChanged(int state) { } });

ViewPager 详解

前提是你 提交于 2019-12-26 17:54:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> https://blog.csdn.net/harvic880925/article/details/38453725 https://blog.csdn.net/harvic880925/article/details/38487149 来源: oschina 链接: https://my.oschina.net/u/4000302/blog/3147792

Android SlidingPaneLayout侧滑菜单和ViewPager冲突解决 简单代码!

浪尽此生 提交于 2019-12-24 08:33:44
Android SlidingPaneLayout侧滑菜单和ViewPager冲突解决 简单代码! #给侧滑菜单SlidingPaneLayout添加Touch监听 当ViewPager当前页面不是第一页时,SlidingPaneLayout的Touch事件都由ViewPager处理 final SlidingPaneLayout slidingPane = ( ( MainActivity ) getActivity ( ) ) . slidingPane ; slidingPane . setOnTouchListener ( new View . OnTouchListener ( ) { @Override public boolean onTouch ( View view , MotionEvent motionEvent ) { if ( viewPager . getCurrentItem ( ) > 0 ) return viewPager . onTouchEvent ( motionEvent ) ; else return slidingPane . onTouchEvent ( motionEvent ) ; } } ) ; 来源: CSDN 作者: LLLIIYYY 链接: https://blog.csdn.net/weixin_39587245