openaphid/android-flip

Layout White Flashes

Kanval87 opened this issue · 51 comments

When layouts are heavy ( have a multiple child's and child's of child), flip view tend to give white flashes while flipping.

I was lazy and used a naive mechanism to start animation in showFlipAnimation() of FlipViewController.
https://github.com/openaphid/android-flip/blob/master/FlipView/FlipLibrary/src/com/aphidmobile/flip/FlipViewController.java#L497

Flickers happen when 100ms is not enough for the controller to build animations.

I will try to solve it as it seems like a simple fix.

Thank you for your instant consideration of issue.

i must say animation looks beautiful and works effiently .

I've pushed a change in develop branch. I won't claim it can eliminate flicker entirely, but please let me know if it helps reduce flashing in your app.

This is what i'm seeing:

when the page is refreshed (the screenshot) after i flipped to it (after my lazy content is loaded), it will flicker when i flip it over to the next page. When the page has already done it's refresh at the moment i flipped over to it, it will not flicker when i flip to the next.

Sorry it took mi long to reply

and no problem has'nt been solved yet.. it is still flashing

Please suggest some ideas to reduce flashing?

Reopened, will push a fix in develop branch soon

The push 2dca94e should have fix the flash issue, but it also introduces a minor issue when flip backward on the first page. I'll publish a fix later today.

Hello, thank you for your fix, but I found [FlipView Demo] -> [3.Async Content] is always some white splash screen.when flipping next page no problem, but often occur flipping to pre page by gently touch.

Thanks for your report, it seems my previous fix is not perfect yet.

I've finished another fix in the develop branch to address the issue. Please try it on your device.
Thanks in advance.

Thanks !
Flip animation more smooth now.

I am getting White Flash on Layout while flipping next. Flip back is working fine but next has issue.

I am also getting the same White Flash when flipping next.But flipping to last page is fine,I am curious about this issue.Hope to fix it.

I also facing this problem now. I user gridview and setAdapter for gridview in getView method
Please fix it.
Thanks in advances!

Hhihi I was fixed my problem. The reason of problem that I don't set background for main layout.
When I set background by tag android:background="@android:color/white" > it's OK.
So I think that, this problem still encounter if background is transparent
Thank you for sharing a great lib.
Thanks in Advances!

I have the same issue... Flipping next is flashing, but flipping back is working just fine. @miteshm and @JackCho did you guys find a fix for that? @openaphid do you plan to reopen this bug, by any chance? Cheers!

I have the same issue...In FragementActivity, Flipping next is flashing, but flipping back is working just fine . Although everything works fine in Activity but in Fragment Activity Its flashing in forwarding.

@kevinmeresse Did you get any fix for the same ?

I got the RCA for the same, flickering still happening until android:targetSdkVersion is greater than 10.
So, For ICS and on words It flickers in next flipping.

Thanks,I also have the same problem. white flashes while flipping,In my App,the imageview is too heavy.

You can reduce the white flash by reduce rendering bitmap

setAnimationBitmapFormat(Bitmap.Config);

This doesn't kill all the flashes but hope it helps! :)

Still having a problem with a blinking at random times ... Has anyone found a clear solution to this?

Please what about the flickering when getting to next page
I hope U solve this issue :(

Thanks in advance

Unfortunatelly i have not solve this issue ... i am trying to get deep into code but is dificult ... Do you have the same problem?

unfortunatelly yes :(

I have same problem now.
I am using Galaxy S3 for testing this but when i flip next, flash screen still happen
I was use lastest version and change setAnimationBitmapFormat(Bitmap.Config.RGB_565) but it's not working
Any body solved problem?
Thanks in advances!

Hi guys,
I couldn't get any fix for the white flashes. But I am now using another library from @emilsjolander which is working very well: https://github.com/emilsjolander/android-FlipView
It doesn't support webviews or fragments yet, but it's clean and easy to use. I hope it can help some of you who can't get this one work properly.
Cheers!

I will still wait @openaphid to fix for the white flashes.I believe there not be long time. if there be long time,I will try @emilsjolander. @kevinmeresse ,thank you!

Hi all, I fixed this issue by putting an ImageView with white background at the bottom of my page view layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:background="#ffffff"/>
    <LinearLayout
        android:id="@+id/content_container"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:orientation="vertical">

        <!-- Your page content goes here -->

    </LinearLayout>

</RelativeLayout>

Hope this can help ppl looking for solutions around this

I have a try,it still flash screen,but the probality is lower

2laa commented

Hi All, Has anyone found a solution?

FlipViewController.java
void postHideFlipAnimation() {
if (inFlipAnimation) {
// handler.post(new Runnable() {
// @OverRide
// public void run() {
// hideFlipAnimation();
// }
// });
}
}

try

@link17: yeah, comment this lines, flash will stop but not update the view.
Could you give full solution for this
thanks in advance!

Having the same issue. The worst is that everything was OK when I was evaluating this library during my POC, and I forked it to add features to it (spine position, orientation change handling).

Does anybody found a solution to fix this ?

Probably not the cleanest solution, but found that the flicker does not appear if you delay the call to hideFlipAnimation in the postHideFlipAnimation() method of FlipViewController.java.

    void postHideFlipAnimation() {
        if (inFlipAnimation) {
            new Thread() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(200);
                    } catch (InterruptedException e) {
                    }
                    ((Activity)FlipViewController.this.getContext()).runOnUiThread(new Runnable() {
                        public void run() {
                            handler.post(new Runnable() {
                                public void run() {
                                    hideFlipAnimation();
                                }
                            });
                        }
                    });
                }
            }.start();
        }
    }

hmmm, I tried the solution above, but the flickering still happens

I had a similar problem. The content of the flipview had margins around them. While flipping, the margins started showing up in white. Once the animations are complete, it goes back to normal. The white margin shows up only during the flipping.

How I solved this:
I wapped the contents int another layout and applied padding to it the same amount of margin the contents used to have. This fixed the problem.

I changed the postHideFlipAnimation like below in FlipViewController.

void postHideFlipAnimation() {
    if (inFlipAnimation) {
      handler.postDelayed(new Runnable() {
        @Override
        public void run() {
          hideFlipAnimation();
        }
      },200);
    }
  }

Flicker issue has been fixed.Delay the postHideFlipAnimation for 2 seconds and add a transparent background in parent layout.

in flipviewcontroller where to call webservice when i flip the page and data is loaded dynamically when flip page.

Hi , faceing the same issue also when i try to flip the layout image gets refreshed and later flipping . when i return to image positon layer , image is not getting refreshed again , so only when i flip for next view only image gets refreshing .
so can anyone tell me how to fix it ....

Hey. How can I change your code according to read images from URL or drawable ?

I used @magirtopcu method,the flicker disappear,but i feel like switch is slow,and I implement FlipViewController.ViewFlipListener(),the method onViewFlipped is delayed. I don't think it is a perfect
solution.

Hi @runforprogram , Can you share your implementation ?

Anybody found a solution yet?

Who has a good solution for this issue?
Help anyone?

Comment a line as below in FlipViewController...it will work like a charm....also keep main layout background white...also imageview background white color:
private void hideFlipAnimation() {
if (inFlipAnimation) {
inFlipAnimation = false;

  updateVisibleView(bufferIndex);

  if (onViewFlipListener != null) {
    onViewFlipListener.onViewFlipped(bufferedViews.get(bufferIndex), adapterIndex);
  }

  handler.post(new Runnable() {
    public void run() {
      if (!inFlipAnimation) {
        //COMMENT BELOW LINE
       // cards.setVisible(false);
        surfaceView.requestRender(); //ask OpenGL to clear its display
      }
    }
  });
}

}

.it's work like a charm but image is not updating properly

@CRUDTechnolgoy Me too, I tried to hide that line but that causes my search filter on the FlipView to not work. Delaying by 200ms and setting the container layout backgrounds to white seems to be the best fix for now.

hi , Firstly , Very Nice library . Can anyone tell me , how to implement zoom in , zoom out and pinch functionality . I used with custom zoomview but it will intrupt the sliding .