castorflex / verticalviewpager Goto Github PK
View Code? Open in Web Editor NEWCopy pasted version of the support ViewPager, but vertical!
Copy pasted version of the support ViewPager, but vertical!
There is an issue in the manifest merger that requires the library to have an application node in its manifest.
Solution is to add tag to the mainfest.
I'll wait for your answer.
When using a vertical ViewPager the pages are a lot longer and take longer to drag to the next page rendering it very difficult for the user to change pages by dragging unless they fling.
Would be nice to be able to change the distance in which the ViewPager moves per pixels dragged, then working with a vertical ViewPager would be a lot more pleasurable experience when dragging between pages (it will be doable without a fling).
Hi,
VerticalViewPager scroll doesn't work when a list-view is used inside it. I guess the list-view vertical scroll motion is conflicting with the vertical scroll of the the pager...Can you look at it.
thanks
I meet this problem below:
java.lang.IllegalStateException,The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 6, found: 0
I can't find more useful information in AS Logcat,please help me!!!
<fr.castorflex.android.verticalviewpager.VerticalViewPager
android:id="@+id/vvp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
big big bug !!!
I have pages witch contain webview, the content of webviews are different in size. if the content does not fill the view everything is fine, with large content there is some glitch when scrolling. sometimes i scrolling down and suddenly webview scroll to its top. and every time i hold finger to select text the page getting scrolled as well.
any help or note would be appreciated.
I have a requirement:when I switch, VerticalViewPager cannot scrolling
How can solve?
08-04 18:31:16.700 26491-26491/com.app.bollywoodtimes E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.app.bollywoodtimes, PID: 26491
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.bollywoodtimes/com.app.bollywoodtimes.Activity.BollywoodTimesApp}: android.view.InflateException: Binary XML file line #18: Error inflating class fr.castorflex.android.verticalviewpager.VerticalViewPager
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2187)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
at android.app.ActivityThread.access$800(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #18: Error inflating class fr.castorflex.android.verticalviewpager.VerticalViewPager
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.app.bollywoodtimes.Fragment.HomeScreen.onCreateView(HomeScreen.java:61)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:339)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:602)
at com.app.bollywoodtimes.Activity.SocialLoginActivity.onStart(SocialLoginActivity.java:436)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
at android.app.Activity.performStart(Activity.java:5247)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2160)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
at android.app.ActivityThread.access$800(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "fr.castorflex.android.verticalviewpager.VerticalViewPager" on path: DexPathList[[zip file "/data/app/com.app.bollywoodtimes-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.app.bollywoodtimes-2, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at android.view.LayoutInflater.createView(LayoutInflater.java:559)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.app.bollywoodtimes.Fragment.HomeScreen.onCreateView(HomeScreen.java:61)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:339)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:602)
at com.app.bollywoodtimes.Activity.SocialLoginActivity.onStart(SocialLoginActivity.java:436)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
at android.app.Activity.performStart(Activity.java:5247)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2160)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
at android.app.ActivityThread.access$800(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
please patch the code
public boolean executeKeyEvent(KeyEvent event) {
boolean handled = false;
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (event.getKeyCode()) {
--case KeyEvent.KEYCODE_DPAD_LEFT:
++case KeyEvent.KEYCODE_DPAD_UP:
--handled = arrowScroll(FOCUS_LEFT);
++handled = arrowScroll(FOCUS_UP);
break;
--case KeyEvent.KEYCODE_DPAD_RIGHT:
++case KeyEvent.KEYCODE_DPAD_DOWN:
--handled = arrowScroll(FOCUS_RIGHT);
++handled = arrowScroll(FOCUS_DOWN);
break;
......
}
}
return handled;
}
fakeDragBy(float) does not work as expected.
I've been trying to figure out why setOnPageChangeListener doesn't work with the VerticalViewPager. I do the next:
pagerView.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
...
}
@Override public void onPageSelected(int position) {
...
}
@Override public void onPageScrollStateChanged(int state) {
i...
}
});
Methods are never called.
Stack trace below:
Fatal Exception: java.lang.IllegalArgumentException
pointerIndex out of range
raw
android.view.MotionEvent.nativeGetAxisValue (MotionEvent.java)
android.view.MotionEvent.getY (MotionEvent.java:2168)
android.support.v4.view.MotionEventCompatEclair.getY (MotionEventCompatEclair.java:35)
android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getY (MotionEventCompat.java:95)
android.support.v4.view.MotionEventCompat.getY (MotionEventCompat.java:228)
fr.castorflex.android.verticalviewpager.VerticalViewPager.onInterceptTouchEvent (VerticalViewPager.java:1732)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2073)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2441)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2174)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2441)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2174)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2441)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2174)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2441)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2174)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2441)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2174)
android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:2441)
android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:2174)
com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent (PhoneWindow.java:2326)
com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent (PhoneWindow.java:2274)
android.view.View.dispatchPointerEvent (View.java:8025)
android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent (ViewRootImpl.java:4668)
android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:4556)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4150)
android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4207)
android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4176)
android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:4261)
android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4184)
android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:4318)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4150)
android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4207)
android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4176)
android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4184)
android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4150)
android.view.ViewRootImpl.deliverInputEvent (ViewRootImpl.java:6302)
android.view.ViewRootImpl.doProcessInputEvents (ViewRootImpl.java:6240)
android.view.ViewRootImpl.enqueueInputEvent (ViewRootImpl.java:6211)
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent (ViewRootImpl.java:6382)
android.view.InputEventReceiver.dispatchInputEvent (InputEventReceiver.java:188)
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.Looper.loop (Looper.java:124)
android.app.ActivityThread.main (ActivityThread.java:5455)
java.lang.reflect.Method.invokeNative (Method.java)
dalvik.system.NativeStart.main (NativeStart.java)
As in title, besides that everything works perfect. On (FragmentPagerAdapter) myAdapter.getItem() I'm returning custom class which returns simple View in onCreateView().
Plus when I enable debug mode (DEBUG == true) I get:
06-02 09:35:44.470: E/AndroidRuntime(8694): FATAL EXCEPTION: main
06-02 09:35:44.470: E/AndroidRuntime(8694): java.lang.ClassCastException: com.example.mypackage.SubPage cannot be cast to android.view.View
06-02 09:35:44.470: E/AndroidRuntime(8694): at com.example.mypackage.VerticalViewPager.populate(VerticalViewPager.java:938)
06-02 09:35:44.470: E/AndroidRuntime(8694): at com.example.mypackage.VerticalViewPager.populate(VerticalViewPager.java:813)
06-02 09:35:44.470: E/AndroidRuntime(8694): at com.example.mypackage.VerticalViewPager$3.run(VerticalViewPager.java:216)
06-02 09:35:44.470: E/AndroidRuntime(8694): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
06-02 09:35:44.470: E/AndroidRuntime(8694): at android.view.Choreographer.doCallbacks(Choreographer.java:562)
06-02 09:35:44.470: E/AndroidRuntime(8694): at android.view.Choreographer.doFrame(Choreographer.java:531)
06-02 09:35:44.470: E/AndroidRuntime(8694): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
06-02 09:35:44.470: E/AndroidRuntime(8694): at android.os.Handler.handleCallback(Handler.java:725)
06-02 09:35:44.470: E/AndroidRuntime(8694): at android.os.Handler.dispatchMessage(Handler.java:92)
06-02 09:35:44.470: E/AndroidRuntime(8694): at android.os.Looper.loop(Looper.java:137)
06-02 09:35:44.470: E/AndroidRuntime(8694): at android.app.ActivityThread.main(ActivityThread.java:5074)
06-02 09:35:44.470: E/AndroidRuntime(8694): at java.lang.reflect.Method.invokeNative(Native Method)
06-02 09:35:44.470: E/AndroidRuntime(8694): at java.lang.reflect.Method.invoke(Method.java:511)
06-02 09:35:44.470: E/AndroidRuntime(8694): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-02 09:35:44.470: E/AndroidRuntime(8694): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-02 09:35:44.470: E/AndroidRuntime(8694): at dalvik.system.NativeStart.main(Native Method)
It is the same as #6
In combination with ViewPagerIndicator , the VerticalViewPager's OnPageChangeListener is not working.
verticalViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()...);
verticalCirclePageIndicator.setViewPager(verticalViewPager);
i used your VerticalViewPager
VerticalViewPager ->
Fragment ->
ViewPage->
ListView
.VerticalViewPager have a child is Fragment ,and fragment have a ChildView is ViewPage,and the ViewPage have a ChildView is Listview in the last,
but now , if i pull the listview up, the listview cant scrllo normal. please fix it.
i try to fix it ,but it's too difficult to me.
Im using vert scrolling for landscape mode and still want to use horiz scrolling for portrait
how can i switch between the two?
thanks
The function setCurrentItem(int item) is not working
setUserVisibleHint don't get triggered in Fragments when they are invisible, it only get triggered when the view is visible so it always returns true
Hello,
I'm using the VerticalViewPager, and one of the Fragment is a ViewPager. Something like this:
View1 - View11 - View12 - View13
View2
View3
View4
View5
It seems to work fine, but when I scroll all the way down, then come back, the views View1 and View11 are gone. But if I scroll all the way to View13, the come back, I can see them again...
I know this is out of the scope of this class, but was just wondering if you had any hint...
thanks!
Hi,
This issue is different from the last one. I am using AspectRatioImageView
in VerticalViewPager
and my images are now longer that one page of view pager. This makes the viewpager to overlap some images on each other. Is there anyway to tell the viewpager the real height of each page instead device height?
Thanks
When testing on device (Samsung S6, API 21), there is a weird behavior .. if you are on any fragment after the first one, clicking on anything that has 'clickable' attribute to it, would cause the view to slightly scroll above or down to a small amount and then it goes back in right place .. if you click again, it may not show but if you scroll up/down a bit and retry it, it shows that weird behavior again .. I guess the issue is in calculating yOffset in PageScrolled ((int)scrollY) inside PerformDrag() .. Also, I tried everything related to 'focousable', 'focousableInTouchMode', 'DecendantFocousability' but that never worked .. again this is only on device and reproducible using the default sample provided..
Please help .. I invested so much time converting this to Xamarin only to find the issue on device :(
Hi,first of all thanks for such a great library. I am using this VerticalViewPager in one of my app. I used this "https://github.com/JakeWharton/Android-ViewPagerIndicator" library to show view pager indicator.
Below is my Activity code:
mViewPager = (VerticalViewPager) findViewById(R.id.view_pager);
mViewPagerIndicator = (CirclePageIndicator) findViewById(R.id.view_pager_indicator);
mViewPagerIndicator.setViewPager(mVerticalViewPager); //need to pass the object of support v4 ViewPager
The third line in the above code gives error. This is because setViewPager() method takes object of android.support.v4.View.ViewPager as argument and I am sending object of VerticalViewPager as argument.
How can I show view pager indicator in your VerticalViewPager? Please help me out.
Hi,
I am using your code in landscape mode and I have ImageView
in it. the image is big and user needs to scroll vertically. but VerticalViewPager
goes to next page when scrolling down.
Is there any way to solve this issue?
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.