Ho un gruppo di viste personalizzato. In quel gruppo di viste personalizzate ci sono un certo numero di viste personalizzate. Le viste personalizzate si sovrappongono l'un l'altra nel layout.L'invalidazione di una vista personalizzata causa l'annullamento di tutte le viste personalizzate in un gruppo di viste?
Le viste sovrapposte intendono creare "livelli". Quindi un livello può creare del contenuto statico, ma un'altra vista a più livelli crea diversi contenuti animati. Il problema arriva quando chiamo .postInvalidate da un altro thread su una vista che fondamentalmente è un'animazione che viene eseguita a 60FPS. Al di fuori delle viste sovrapposte, 60FPS è realizzabile per il dispositivo che sto utilizzando (Galaxy S3).
All'interno di questo gruppo di viste personalizzate, .invalidate fa sì che 1 delle 2 viste di rendering dell'hardware non siano valide e alcune delle viste del software lo invalidano.
MyCustomViewThatShouldNotInvalidate(AbstractDialLayer).onDraw(Canvas) line: 68
MyCustomViewThatShouldNotInvalidate.onDraw(Canvas) line: 79
MyCustomViewThatShouldNotInvalidate(View).draw(Canvas) line: 13650
MyCustomViewThatShouldNotInvalidate(View).draw(Canvas, ViewGroup, long) line: 13534
MyCustomViewGroup(ViewGroup).drawChild(Canvas, View, long) line: 2938
MyCustomViewGroup(ViewGroup).dispatchDraw(Canvas) line: 2808
MyCustomViewGroup(View).buildDrawingCache(boolean) line: 12909
MyCustomViewGroup(View).getDisplayList(DisplayList, boolean) line: 12580
MyCustomViewGroup(View).getDisplayList() line: 12645
RelativeLayout(ViewGroup).dispatchGetDisplayList() line: 2920
RelativeLayout(View).getDisplayList(DisplayList, boolean) line: 12537
RelativeLayout(View).getDisplayList() line: 12645
RelativeLayout(ViewGroup).dispatchGetDisplayList() line: 2920
RelativeLayout(View).getDisplayList(DisplayList, boolean) line: 12537
RelativeLayout(View).getDisplayList() line: 12645
NoSaveStateFrameLayout(ViewGroup).dispatchGetDisplayList() line: 2920
NoSaveStateFrameLayout(View).getDisplayList(DisplayList, boolean) line: 12537
NoSaveStateFrameLayout(View).getDisplayList() line: 12645
ViewPager(ViewGroup).dispatchGetDisplayList() line: 2920
ViewPager(View).getDisplayList(DisplayList, boolean) line: 12537
ViewPager(View).getDisplayList() line: 12645
LinearLayout(ViewGroup).dispatchGetDisplayList() line: 2920
LinearLayout(View).getDisplayList(DisplayList, boolean) line: 12537
LinearLayout(View).getDisplayList() line: 12645
RelativeLayout(ViewGroup).dispatchGetDisplayList() line: 2920
RelativeLayout(View).getDisplayList(DisplayList, boolean) line: 12537
RelativeLayout(View).getDisplayList() line: 12645
NoSaveStateFrameLayout(ViewGroup).dispatchGetDisplayList() line: 2920
NoSaveStateFrameLayout(View).getDisplayList(DisplayList, boolean) line: 12537
NoSaveStateFrameLayout(View).getDisplayList() line: 12645
LinearLayout(ViewGroup).dispatchGetDisplayList() line: 2920
LinearLayout(View).getDisplayList(DisplayList, boolean) line: 12537
LinearLayout(View).getDisplayList() line: 12645
LongPressGestureDetectingFrameLayout(ViewGroup).dispatchGetDisplayList() line: 2920
LongPressGestureDetectingFrameLayout(View).getDisplayList(DisplayList, boolean) line: 12537
LongPressGestureDetectingFrameLayout(View).getDisplayList() line: 12645
FrameLayout(ViewGroup).dispatchGetDisplayList() line: 2920
FrameLayout(View).getDisplayList(DisplayList, boolean) line: 12537
FrameLayout(View).getDisplayList() line: 12645
LinearLayout(ViewGroup).dispatchGetDisplayList() line: 2920
LinearLayout(View).getDisplayList(DisplayList, boolean) line: 12537
LinearLayout(View).getDisplayList() line: 12645
CustomViewAbove(ViewGroup).dispatchGetDisplayList() line: 2920
CustomViewAbove(View).getDisplayList(DisplayList, boolean) line: 12537
CustomViewAbove(View).getDisplayList() line: 12645
SlidingMenu(ViewGroup).dispatchGetDisplayList() line: 2920
SlidingMenu(View).getDisplayList(DisplayList, boolean) line: 12537
SlidingMenu(View).getDisplayList() line: 12645
PhoneWindow$DecorView(ViewGroup).dispatchGetDisplayList() line: 2920
PhoneWindow$DecorView(View).getDisplayList(DisplayList, boolean) line: 12537
PhoneWindow$DecorView(View).getDisplayList() line: 12645
HardwareRenderer$Gl20Renderer(HardwareRenderer$GlRenderer).draw(View, View$AttachInfo, HardwareRenderer$HardwareDrawCallbacks, Rect) line: 1170
ViewRootImpl.draw(boolean) line: 2275
ViewRootImpl.performDraw() line: 2147
ViewRootImpl.performTraversals() line: 1958
ViewRootImpl.doTraversal() line: 1112
ViewRootImpl$TraversalRunnable.run() line: 4474
Choreographer$CallbackRecord.run(long) line: 725
Choreographer.doCallbacks(int, long) line: 555
Choreographer.doFrame(long, int) line: 525
Choreographer$FrameDisplayEventReceiver.run() line: 711
Handler.handleCallback(Message) line: 615
Choreographer$FrameHandler(Handler).dispatchMessage(Message) line: 92
Looper.loop() line: 137
ActivityThread.main(String[]) line: 4918
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 511
ZygoteInit$MethodAndArgsCaller.run() line: 1004
ZygoteInit.main(String[]) line: 771
NativeStart.main(String[]) line: not available [native method]
Avete qualche codice che può essere utilizzato per ricreare questo? –