Vertical ViewPager with fragments












1














I want to show 3 fragments below each other. So far I've used many solutions such as YViewPager and answers such as Android: Vertical ViewPager. The main problem with them is non of them working the way I want. I need to show a first fragment and below that, some part of the second one, and when user scrolled to next one, showing second fragment and some part of third one.
The YViewPager was great until I added these lines to show some part of second fragment:



viewPager.setClipToPadding(false);
viewPager.setCurrentItem(1);
viewPager.setPadding(0,0,0,500);


After that, it became like this:



With that white space that came out of nowhere.
And as for other libraries and hacks which told me to swap motion event:



private MotionEvent swapXY(MotionEvent event) {
float width = getWidth();
float height = getHeight();

float newX = (event.getY() / height) * width;
float newY = (event.getX() / width) * height;

event.setLocation(newX, newY);
return event;
}


And also rewrite the PageTransformer.
Here everything was good until I wanted to go from second fragment to the first one. It wanted to set the alpha to 0 to begin the transformation but this creates some sudden disappearance for the third fragment like this:



enter image description here



Well, here is my question:



Is there anyway to achieve this kind of view without these problems?
Do you suggest some other approaches?



Thank you in advance.










share|improve this question



























    1














    I want to show 3 fragments below each other. So far I've used many solutions such as YViewPager and answers such as Android: Vertical ViewPager. The main problem with them is non of them working the way I want. I need to show a first fragment and below that, some part of the second one, and when user scrolled to next one, showing second fragment and some part of third one.
    The YViewPager was great until I added these lines to show some part of second fragment:



    viewPager.setClipToPadding(false);
    viewPager.setCurrentItem(1);
    viewPager.setPadding(0,0,0,500);


    After that, it became like this:



    With that white space that came out of nowhere.
    And as for other libraries and hacks which told me to swap motion event:



    private MotionEvent swapXY(MotionEvent event) {
    float width = getWidth();
    float height = getHeight();

    float newX = (event.getY() / height) * width;
    float newY = (event.getX() / width) * height;

    event.setLocation(newX, newY);
    return event;
    }


    And also rewrite the PageTransformer.
    Here everything was good until I wanted to go from second fragment to the first one. It wanted to set the alpha to 0 to begin the transformation but this creates some sudden disappearance for the third fragment like this:



    enter image description here



    Well, here is my question:



    Is there anyway to achieve this kind of view without these problems?
    Do you suggest some other approaches?



    Thank you in advance.










    share|improve this question

























      1












      1








      1







      I want to show 3 fragments below each other. So far I've used many solutions such as YViewPager and answers such as Android: Vertical ViewPager. The main problem with them is non of them working the way I want. I need to show a first fragment and below that, some part of the second one, and when user scrolled to next one, showing second fragment and some part of third one.
      The YViewPager was great until I added these lines to show some part of second fragment:



      viewPager.setClipToPadding(false);
      viewPager.setCurrentItem(1);
      viewPager.setPadding(0,0,0,500);


      After that, it became like this:



      With that white space that came out of nowhere.
      And as for other libraries and hacks which told me to swap motion event:



      private MotionEvent swapXY(MotionEvent event) {
      float width = getWidth();
      float height = getHeight();

      float newX = (event.getY() / height) * width;
      float newY = (event.getX() / width) * height;

      event.setLocation(newX, newY);
      return event;
      }


      And also rewrite the PageTransformer.
      Here everything was good until I wanted to go from second fragment to the first one. It wanted to set the alpha to 0 to begin the transformation but this creates some sudden disappearance for the third fragment like this:



      enter image description here



      Well, here is my question:



      Is there anyway to achieve this kind of view without these problems?
      Do you suggest some other approaches?



      Thank you in advance.










      share|improve this question













      I want to show 3 fragments below each other. So far I've used many solutions such as YViewPager and answers such as Android: Vertical ViewPager. The main problem with them is non of them working the way I want. I need to show a first fragment and below that, some part of the second one, and when user scrolled to next one, showing second fragment and some part of third one.
      The YViewPager was great until I added these lines to show some part of second fragment:



      viewPager.setClipToPadding(false);
      viewPager.setCurrentItem(1);
      viewPager.setPadding(0,0,0,500);


      After that, it became like this:



      With that white space that came out of nowhere.
      And as for other libraries and hacks which told me to swap motion event:



      private MotionEvent swapXY(MotionEvent event) {
      float width = getWidth();
      float height = getHeight();

      float newX = (event.getY() / height) * width;
      float newY = (event.getX() / width) * height;

      event.setLocation(newX, newY);
      return event;
      }


      And also rewrite the PageTransformer.
      Here everything was good until I wanted to go from second fragment to the first one. It wanted to set the alpha to 0 to begin the transformation but this creates some sudden disappearance for the third fragment like this:



      enter image description here



      Well, here is my question:



      Is there anyway to achieve this kind of view without these problems?
      Do you suggest some other approaches?



      Thank you in advance.







      android android-fragments android-viewpager






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 27 at 13:08









      Mohammad Zarei

      1,114623




      1,114623
























          1 Answer
          1






          active

          oldest

          votes


















          1














          I think you can achieve the described behavior much easier using RecyclerView and SnapHelper. Here is a link where you can find some explanation with some sources https://rubensousa.github.io/2016/08/recyclerviewsnap






          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53945621%2fvertical-viewpager-with-fragments%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            I think you can achieve the described behavior much easier using RecyclerView and SnapHelper. Here is a link where you can find some explanation with some sources https://rubensousa.github.io/2016/08/recyclerviewsnap






            share|improve this answer


























              1














              I think you can achieve the described behavior much easier using RecyclerView and SnapHelper. Here is a link where you can find some explanation with some sources https://rubensousa.github.io/2016/08/recyclerviewsnap






              share|improve this answer
























                1












                1








                1






                I think you can achieve the described behavior much easier using RecyclerView and SnapHelper. Here is a link where you can find some explanation with some sources https://rubensousa.github.io/2016/08/recyclerviewsnap






                share|improve this answer












                I think you can achieve the described behavior much easier using RecyclerView and SnapHelper. Here is a link where you can find some explanation with some sources https://rubensousa.github.io/2016/08/recyclerviewsnap







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 2 days ago









                Mondok Tamas

                31137




                31137






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53945621%2fvertical-viewpager-with-fragments%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Monofisismo

                    Angular Downloading a file using contenturl with Basic Authentication

                    Olmecas