viewpager

Handling Soft Keyboard Navigation Arrows

匿名 (未验证) 提交于 2019-12-03 00:59:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Here i am using ViewPager for Fragments, i used custom view pager for controlling navigation. here is the class, public class NonSwipeableViewPager extends ViewPager { public NonSwipeableViewPager(Context context) { super(context); setMyScroller(); } public NonSwipeableViewPager(Context context, AttributeSet attrs) { super(context, attrs); setMyScroller(); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { // Never allow swiping to switch between pages return false; } @Override public boolean onTouchEvent(MotionEvent event

Google Maps getMap returns null

匿名 (未验证) 提交于 2019-12-03 00:59:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: UPDATED I read many topics but nothing helped or I didn't understand what to do. I get null and I don't know why. I am just learning so please help me. java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.SupportMapFragment.getMapAsync(com.google.android.gms.maps.OnMapReadyCallback)' on a null object reference at com.example.text.fragments.MapFragment.initilizeMap(MapFragment.java:52) at com.example.text.fragments.MapFragment.onViewCreated(MapFragment.java:46) at android.support.v4.app

onPageSelected isn't triggered when calling setCurrentItem(0)

匿名 (未验证) 提交于 2019-12-03 00:56:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have an Activity with a ViewPager which displays a bunch of pictures. When it starts the ViewPager's position is set based on what the user selected in a previous Activity. Similar to a gallery. I want the onPageSelected to be called every time a new page is selected, i.e. when the Activity is first opened or when the user slides to a new page. I set the starting point like so: mPager.setCurrentItem(index); Everything works, except when setCurrentItem called with index set to 0 as this will not trigger onPageSelected. mPager

Viewpager shows wrong page

匿名 (未验证) 提交于 2019-12-03 00:52:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have a viewpagerindicator by Jake Wharton and in that viewpager i have 6 pages.All of the pages contains listviews and i'm loading them with an AsyncTask.Sometimes viewpager shows wrong pages at wrong indexes.Here is my viewpager adapter: public class TestFragmentAdapter extends FragmentPagerAdapter{ protected static final String[] CONTENT = new String[] { "a","b","c","d","e","f" }; private int mCount = CONTENT.length; Fragment fragment1,fragment2,fragment3,fragment4,fragment5,fragment6; public TestFragmentAdapter(FragmentManager fm) {

ViewPager刷新遇到的坑

匿名 (未验证) 提交于 2019-12-03 00:39:02
今天写了个ViewPager+Fragment,切换,刷新Fragment数据的demo,写的吐血 1. for ( int i = 0 ; i < mCategoryEntityList .size() ; i++) { DefualInfoFragment meFragment = new DefualInfoFragment() ; Bundle bundle = new Bundle() ; bundle.putString(Constant. CHANNEL_CODE , mCategoryEntityList .get(i).toString()) ; meFragment.setArguments(bundle) ; fragments .add(meFragment) ; } adapter = new NewsPagerAdapter(getChildFragmentManager() , fragments ) ; mViewPager .setAdapter( adapter ) ; 循环四个Fragment加到list中,到这里都没问题 这时候,我准备点击加号,改变Fragment的顺序 然后调用 notifyDataSetChanged() 我去,竟然没有用 百度发现,出现这种原因,是因为ViewPager具有缓存作用,他默认会缓存三个Fragment

Android 底部按钮BottomNavigationView + Fragment + viewPager 的使用(一)

匿名 (未验证) 提交于 2019-12-03 00:38:01
实现的效果,左右滑动,底部栏跟着滑动,中间加的是分帧的页面 <? xml version="1.0" encoding="utf-8" ?> < android.support.constraint.ConstraintLayout xmlns:android ="http://schemas.android.com/apk/res/android" xmlns:app ="http://schemas.android.com/apk/res-auto" xmlns:tools ="http://schemas.android.com/tools" android:id ="@+id/container" android:layout_width ="match_parent" android:layout_height ="match_parent" tools:context =".MainActivity" > < android.support.v4.view.ViewPager android:id ="@+id/view_pager" android:layout_width ="match_parent" android:layout_weight ="1" android:layout_height ="0dp" /> < android.support

Fragment 使用和坑

匿名 (未验证) 提交于 2019-12-03 00:34:01
fragment 相比于activity更加节约内存,fragment 可以灵活的在activity中加载、切换,同时也有自己的生命周期 Fragment 优点 Fragment 可以将 Activity 分离成多个可重用的组件,每个都有它自己的生命周期和 UI。 Fragment可以轻松得创建动态灵活的 UI 设计,可以适应于不同的屏幕尺寸。从手机到平板电脑,在不同的安卓设备上统一你的UI。 Fragment是一个独立的模块,紧紧地与 activity 绑定在一起。可以运行中动态地移除、加入、交换等。 Fragment解决Activity之间的切换不流畅,轻量切换。 Fragment替换TabActivity做导航性能更好。 1、静态加载:直接写入到 layout 中 2、动态加载:使用FragmentManager进行管理(通常使用 supportFragmentManager),开启 transaction ,添加以后,commit 前者适用于页面较少的情况,后者适用于页面较多的情况。FragmentStatePagerAdapter 在每次view pager 切换页面的时候,是回收了内存的。前者只是调用了 detach 方法和activity分开,没有释放内存。 使用FragmentPagerAdapter+ViewPager时,切换回上一个Fragment页面时

PagerSlidingTabStrip 源码解析

让人想犯罪 __ 提交于 2019-12-03 00:33:51
1. 总体设计 pagerSlidingTabStrip 实现联动效果的原理是,它引用了 ViewPager 的 OnPageChangeListener 。 但是 viewpager 注册的 listener 不是自身的 OnPageChangeListener ,而是 pagerSlidingTabStrip 内部类 PageListener 。 通过 PageListener 实现对对 viewpager 和 tab 的封装。从而实现滑动联动效果。 可以设置 tab 的类型为 textview 还是 icon。对于 textview 可设置字库属性。 通过提供方法如滑动指示器 下划线 tab 风格线 tab 权重等达到自定义的效果。 2. 流程图 3. 功能介绍 3.1 特性介绍 兼容 Android 支持库中的 ViewPager 的一个滑动分页指示器的控件。 滑动时实现 TextView 颜色状态的联动 支持文字导航指示,可指定选中的 pager 导航字体属性 支持图片导航指示,可高亮选中 pager 页导航背景 很好的扩展性 3.2 集成及使用指南 3.2.1 在 gradle 中 dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1' } 3.2.2 在 layout 布局文件中引入

关于ScrollView嵌套ViewPager 嵌套 ListView 嵌套 WebView 大全

匿名 (未验证) 提交于 2019-12-03 00:27:02
这几天做一个页面,需要用到ScrollView嵌套ViewPager,而ViewPager(Fragment)中又有两个Fragment 分别包含ListView以及WebView,大概的层级是这样的: 这样布局就会导致Viewpager WebView ListView 三个控件都显示不出来,导致这样的原因是,在Measure流程的时候,不能测出这三个控件的宽高,导致这三个控件不能显示,说到Measure 大家应该都知道该怎么解决了吧,没错,就是重写这三个控件的onMeasure方法,我们先来看看重写的ViewPager,当然重写ViewPager的方法,网上也有很多,就是关于这个问题的。大家,也可以去看看别人的博客,下面贴代码: public class AutofitHeightViewPager extends ViewPager { private int current; private int height = 0 ; /** * 保存position与对于的View */ private HashMap<Integer, View> mChildrenViews = new LinkedHashMap<Integer, View>(); private boolean scrollble = true ; private static final String

Android 滑动冲突的处理

匿名 (未验证) 提交于 2019-12-03 00:27:02
概念:滑动冲突即某些 特定的滑动事件被父View拦截导致子View接收不到 该事件无法滑动。 基本类型: 其他复杂类型都是由基本类型组成的。 ˼· 从滑动冲突的概念可知,只需 让子View接收到特定的滑动事件 即可解决冲突。 子View要接收到ACTION_MOVE必须: ACTION_DOWN:从 Android事件分发机制本质是树的深度遍历(图+源码) 的结论(即ACTION_DOWN会深度遍历“分发树”并确定“消耗树”,后续同一序列事件都是沿着这一“消耗树”分发(深度遍历,但通常都是线性结构)的,且可被中途拦截但“消耗树”不变。)可知,要让ACTION_DOWN至少能分发到子View并且被子View或更下层的View消耗,其实就是让“消耗树”能够到达子View,这样后续的ACTION_MOVE事件才有机会到达子View。总之, ACTION_DOWN必须被子View或它的下层消耗。 解决办法:在子View的在onTouchEvent()中消耗ACTION_DOWN。 ACTION_MOVE: 父View不拦截子View需要的特定ACTION_MOVE 。 解决办法: 外部拦截:重写父View的onInterceptTouchEvent(),不拦截子View需要的特定滑动事件。(“自控”:父View自己控制拦截ACTION_MOVE与否) 内部拦截