B4A Library AHViewPager library - Sliding panels now perfect

Discussion in 'Additional libraries, classes and official updates' started by corwin42, Jan 18, 2012.

  1. wimpie3

    wimpie3 Well-Known Member Licensed User

    Pager_PageChanged fires already before the animation is finished... if you add and remove pages here, the animation is interrupted.
  2. corwin42

    corwin42 Expert Licensed User

    Yes, thats true. Use PageScrollStateChanged when it changes to SCROLLSTATE_IDLE
  3. wimpie3

    wimpie3 Well-Known Member Licensed User

    That's not the best solution either. It takes a second or two before the animation is completely finished so you end up with stutter. Plus if you swipe really fast, the animation state does not go idle.
  4. Esteve

    Esteve Member Licensed User

    Hi, I'm using the example FixedTabsIconText, I can not put a transparent panel in front of the tabs to disable,
    This is always below the DSTabLayout.
    is this possible?
    If not possible, what would be the correct way to disable the movement of panels?

  5. wimpie3

    wimpie3 Well-Known Member Licensed User

    What is the difference between .Enabled and .PagingEnabled ?
  6. techknight

    techknight Well-Known Member Licensed User

    AHViewPager is broken on Android Wear if I use anything newer than API level 4. Just so your aware!
  7. corwin42

    corwin42 Expert Licensed User

    with .Enabled the view itself gets enabled and disabled. With .PagingEnabled you can disable the touch scrolling.

    Explain "broken"
  8. techknight

    techknight Well-Known Member Licensed User

    Wont slide back right again after sliding left, Android wear assumes this means exit app, so it kills the app.

    Using API 4 works. Anything above that, nope.
  9. corwin42

    corwin42 Expert Licensed User

    Updated the library to V3.00 in the first post.

    Adds support for Designer custom properties and uses the maven repository for the support library (B4A 6.0 or above required).
    Last edited: Jun 23, 2016
  10. Mashiane

    Mashiane Expert Licensed User

    Hi there

    For each of my pages I am loading a layout that has a panel with controls inside that I have anchored in case the screen size changes. I want the views inside the panel to resize themselves to fit into the panel irrespective of the screen size. I however want the panel to resize itself to fit the page area.

    How do I ensure that the panel in the layout sized itself to the AHPageContainer on all sized?

    ' load my view
    'Now we can add the pager to the activity, the pager will resize itself irrespective of screen size.
        Activity.AddView(pager, pnlLeft.width, pnlHeader.height, 100%x - pnlLeft.Width, 100%y - pnlHeader.height)
    Then each page is added like this.

    Dim pg As Panel
                pg = CreatePanel(userup)
    where my CreatePanel method is like...

    Sub CreatePanel(xupload As StringAs Panel
    Dim pan As Panel
    ' the parent panel inside the layout
        pnlTUR.Left = 0dip
        pnlTUR.Top = 
        pnlTUR.Width = 
        pnlTUR.Height = 
    Is it sensible to resize the parent panel like this i.e. pnlTUR?
  11. wimpie3

    wimpie3 Well-Known Member Licensed User

    Any idea on how we can use this lib for vertical scrolling? This page offers some suggestions that might be easy to integrate.
  12. koaunglay

    koaunglay Member Licensed User

  13. wimpie3

    wimpie3 Well-Known Member Licensed User

    I'm using version 3.0 and once in a while I get the following messages in the logs:
    Unexpected event (missing RaiseSynchronousEvents): mypager_pagescrolled
  14. corwin42

    corwin42 Expert Licensed User

    With my understanding this is not a problem and the messages won't harm. AHViewpager raises synchronous events, when the pages are changed with the finger. There is an annotation @RaisesSynchronousEvents which a developer can add to a library method when it generates synchronous events. Problem here is that there is not really a method which generates this events but it is the touching of the view which is completely handled internally by the support libraries viewpager class.

    So I have no idea how these messages can be avoided. Maybe Erel can comment on this?
  15. Erel

    Erel Administrator Staff Member Licensed User

    @wimpie3 can you check the unfiltered logs when this message appears? There should be a stack trace which will be helpful.
  16. corwin42

    corwin42 Expert Licensed User

    If a page is added to the PageContainer, it is not directly added to the ViewPager and so at this time there is no layout.

    The panel is added to its parent view just before ViewPager_PageCreated event is called. It is sized exactly the same size as the ViewPager at this time. So the best time to load a layout to a Container-Page is in the PageCreated event sub.
    If you do this you should remove all views from the Container panel on PageDestroyed event.

    That is the cleanest way.

    If you don't want to destroy and recreate the contents of the panel every time you may store the status in a global array so that you only load the layout in PageCreated when it was not loaded before.
  17. BarryW

    BarryW Active Member Licensed User

    How to trigger an event when tab has been clicked or long clicked... Tnx
  18. Haris Hafeez

    Haris Hafeez Active Member Licensed User

    Hello All,

    I was wondering if there's a way to hide the viewpager? So what I want to do is to have the pages on the tabs (using DSTabLayout) contain a listview (ULV) and when a user scrolls the list, hide the view pager or the tabs or even the toolbar so that the list takes up most of the space.

    Will appreciate any tips in implementing this.
  19. BarryW

    BarryW Active Member Licensed User

    any sample for working fixedtab?
  20. corwin42

    corwin42 Expert Licensed User

    I'm currently working on a new feature of the DesignSupport library which will support the CoordinatorLayout and CollapsingToolbarLayout. With this new feature all your mentioned effects will be possible.
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice