epoxy icon indicating copy to clipboard operation
epoxy copied to clipboard

Add support for Async Layout inflation with EPoxy

Open varungu opened this issue 2 years ago • 2 comments

EPoxy currently supports only synchronous layout inflation with most of the time during first layout is spent on the inflation of the views.

To make the first layout faster, we should support asynchronous layout inflation. With this approach, the application developer can make heavy views (like video player) asynchronous and improve the page load time

I investigated if we can use a different view like LinearLayout and merge tag in the xml. It won't work with Asynchronous layout inflation since merge tag requires "attachToParent" as true, and asyncronousLayoutInflator inflates with it as false. We will need to use FrameLayout for asynchronous inflation.

TODO

  • Make Asynchronous inflation optional, so that developers can extend all views from AsyncFrameLayout and set a property to choose between sync and async inflation based on use case.

https://user-images.githubusercontent.com/2263278/165597664-3e3355bf-9296-4f78-9ab5-ef4f832099c7.mov

varungu avatar Apr 27 '22 18:04 varungu

@varungu @vinaygaba can we merge this?

elihart avatar Jun 25 '22 00:06 elihart

@elihart I think Varun is running a test with these changes.

vinaygaba avatar Jun 25 '22 00:06 vinaygaba