A declarative framework for building efficient UIs on Android.
APACHE-2.0 License
Bot releases are hidden (Show)
Published by astreet over 5 years ago
FrameworkLogEvents. EVENT_CREATE_LAYOUT
, FrameworkLogEvents. EVENT_CSS_LAYOUT
, and FrameworkLogEvents. EVENT_COLLECT_RESULTS
: these are replaced by the sub-spans "start_create_layout"
/"end_create_layout"
, "start_measure"
/"end_measure"
, and "start_collect_results"
/"end_collect_results"
under the existing top-level EVENT_CALCULATE_LAYOUT_STATE
event. The PerfEvent#markerPoint
API can be used to log these sub-spans (b859605258da6431b706d17c07df7bc8864396df)FrameworkLogEvents.PREPARE_MOUNT
without replacement: this didn't provide much value (4917370d6a7405cddce01c13740f22e9ee736529)FrameworkLogEvents.DRAW
without replacement: this was not free to maintain and didn't provide much value (9e548cbda5ad78d6f8d3a82ec42639439c118751)RecyclerBinder
is changed from 4 screens worth of content in either direction to 2. This should improve resource usage with minimal effects on scroll performance. (9b4fe95b8cd48a15046b0d39c4f4756e50f35772)ComponentsSystrace.provide
: ComponentsSystrace
now assumes an implementation will be provided before any other litho operations occur (457a20f660f14e7132e16668c21b4cf1ce766b70)ComponentsLogger
implementations can now return null for event types they don't care about (4075eb75c9a6f967111b451df6699d1b9b97671b)RecyclerCollectionEventsController#requestScrollBy
(0146857653e29cb24491cbb8bee9307e55187365)Objects
class in cached value API (aabb24a5e67d30e5b93eb43f6c37aae91f455369)ComponentContext
in ComponentTree
(05f11a74a4a06b4abcb1e302f56201609acccad2)@OnCalculateCachedValue
takes no args (2a0f5240bc8c711d8e45db0e5426517f8bfbf49a)collectResults
: these were skewing they perceived size of collectResults
in production and weren't actionable (3107467a4e3fd649821757699a5adba683f47edd)See all changes here: https://github.com/facebook/litho/compare/v0.26.0...v0.27.0
Published by passy over 5 years ago
Picks 513cf91b747bdf06c6bda78840a9195e900d4deb to fix an issue with the Flipper integration.
Published by colriot over 5 years ago
LayoutHandler
to LithoHandler
(https://github.com/facebook/litho/commit/69cba5029c186a4fa81f91c15b44846bc9d79e5c) and add DefaultLithoHandler
(https://github.com/facebook/litho/commit/0d0bb0b196e4035976cb31c307aee95fd9433a27)1.14.0
(https://github.com/facebook/litho/commit/c16baf676f59df99de53cea50e5efa0cb9ddeb0e). Fixes #536ComponentTree
s when RecyclerCollectionComponent
is detached (https://github.com/facebook/litho/commit/88930499b19c01953dead8d37e4fed7c1d161ca1)ComponentsConfiguration.isReconciliationEnabled
flag globally or using ComponentTree.Builder#isReconciliationEnabled
for specific treesreplaceAll(List<RenderInfo>)
method to RecyclerBinder
(#451)See all changes here: https://github.com/facebook/litho/compare/v0.25.0...v0.26.0
Published by muraziz over 5 years ago
DisplayListDrawable
(https://github.com/facebook/litho/commit/29f42fa04dfdff31fc82dd8f199ffc8c62ef5dbf) and other displaylist related featuresReferences
API (https://github.com/facebook/litho/commit/b1aa39a460da25fbf29a80f727007a7e1f267440)MountState
calculations (https://github.com/facebook/litho/commit/66d65feb39ed86450ea74891f9211fd6fda6ffc8)ViewportChanged
listeners of ViewportManager
(https://github.com/facebook/litho/commit/9da9d903c22d0b10d823d509da18c08eb2b2f875)See all changes here: https://github.com/facebook/litho/compare/v0.24.0...v0.25.0
Published by mihaelao over 5 years ago
BREAKING CHANGES
Published by passy almost 6 years ago
KeyHandler
s now get registered in EndToEnd tests (https://github.com/facebook/litho/commit/9836497c15986ebafbfc2b87b1b4a9730fc73080). This is a an edge-case but potentially behavior-changing.isEquivalentTo
now uses reflection for size reasons unless the target is a MountSpec
or SectionSpec
(https://github.com/facebook/litho/commit/2e27d99b0ae75e8356b5654fa412cb66ec965411).See all changes here: https://github.com/facebook/litho/compare/v0.22.0...v0.23.0
Published by astreet almost 6 years ago
transitionKey
has changed default scope from GLOBAL to LOCAL: This means a transition key is local to the spec where it was declared and can only be reference from that spec. To restore previous behavior, 1) set .transitionKeyType
to GLOBAL on your Component when you set a .transitionKey
, and 2) update the corresponding Transition.create
calls to specify a GLOBAL key type.EditTextSpec
is now deprecated in favor of TextInputSpec
. TextInputSpec
fixes bugs that could cause loss of text while typing and allows text to be preserved when scrolled off screen. Interface has changed slightly, text
can no longer be provided as a prop but now must be set on the main thread using the setText
trigger.shouldClipChildren
property on ComponentTree
has been removed: use clipChildren
common prop on Component
instead.static
and final
: this is to prevent correctness issues we've seen with using mutable, non-thread-safe data in specs. Use @State instead if necessary.TextDrawable
: eb3fbc9b1df057b5edbda6e34ca05c8559fec426ComponentContext
leak in TextInputSpec
: 8bb9d76d54729f0c70cb4cf3fa2d780d8d5c6602See all changes here: https://github.com/facebook/litho/compare/v0.21.0...v0.22.0
Published by wujingwe almost 6 years ago
Published by muraziz about 6 years ago
RecyclerCollectionComponent
RecyclerBinder
isAccessibilityEnabled
checkRecyclerBinderConfiguration
settersComponent.Builder
RecyclerBinderConfiguration
CardSpec
ComponentHost
should not delay press state of childrenLayoutStateFuture
thread safetyRecyclerBinder
LayoutState
when device rotatesDrawableComponent
Published by sergeynv about 6 years ago
CommonProps
accessible from a Component
VerticalScroll
RecyclerBinder
CardShadowSpec
and CardShadowDrawable
public@OnDataRendered
callbackComponentHost
children pressed stateonScrollChangeListener
to VerticalScroll
minHeight
and minWidth
attributes to theme parsingminHeight
/minWidth
Published by passy over 6 years ago
VertialScroll
(039c6a6a66fff3f71f044f3f6d29d56e9a566a60, eee0197, 3cc6574).For a full list of changes, check out the comparison view.
Published by wujingwe over 6 years ago
For a full list of changes, see https://github.com/facebook/litho/compare/v0.16.0...v0.17.0
Published by astreet over 6 years ago
RenderCompleteEvent
and ComponentRenderInfo.Builder#renderCompleteHandler
. (48c59c23af171731dd595556665267ee08d03e36, etc.)@CommonProp
s (e.g. layout props, and other props common to all components) from lifecycle methods (bdce0816714a42d4abff97dbc20d4a38697685b0)@TreeProp
s are now passed along from Sections to their child Components. (4771b6435dede730746e406dcb59baa9297fb517)lineSpacingExtra
from XML theme (cc5c99d8e6472a9deb1d7a4f9a8307089afc580f)LithoView
. (031b11dd6812fbed209073493fe3d7ac8f4c8dbb)AccessibilityRole
from Litho images to not conflict with new support library. (6a461918688f641ff384549b1cfac6ff9d16d872)TreeProps
. (ae2bdf5ed9f148707a3185d197f393a607c37379)For a full list of changes, see https://github.com/facebook/litho/compare/v0.15.0...v0.16.0
Published by passy over 6 years ago
@OnUpdateStateWithTransition
.InterceptTouchEvent
now provides a View
param, bringing it in line with other events. (759948ef16720aed15ff3b994c96ed91f1b7f55b)@CommonProp
allows accessing shared props in components like margin/padding in the same way normal props work. (8535205e23a7bd1101af6c634ce8fe4036901b3b)KeyUpEvent
to EditText
. (ad47d9c07437854ac5a94c4b639695c1466a259d)litho-fresco
has been upgraded to work with Fresco 1.9.0.Text
. (cdb428b6cf5176d833cb2455175fba8f4a049e4a)For a full list of changes, see https://github.com/facebook/litho/compare/0.14.0...v0.15.0
Published by passy over 6 years ago
Wait, what? Breaking changes in a patch release?
Yes, but it's really small and GitHub code search didn't show a single use of it out in the wild.
RecyclerConfiguration
is no longer part of RecyclerCollectionComponentSpec
but a top-level class. f2b00a819b4412a53020e3bbb46feb30e709eb5cPublished by muraziz over 6 years ago
TextSpec
bounds are clipped by default.EventHandler
support in TestSpec
s.StateValueAssert
to be able to assert StateValue
s without unwrapping them.ViewRenderInfo
.Transition
API).StartSnapHelper
when child views are smaller than half the size of the RecyclerView
.Published by marco-cova over 6 years ago
StateUpdatesTestHelper
has now its own testing.state package.RowReverse
and ColumnReverse
got removed. Row
and Column
offer a reverse()
property setter to achieve the same.onCreateLayout()
now returns a Component
and not a ComponentLayout
!!buildWithLayout()
is also gone.StateListAnimator
.LithoTooltip
APIs to show a PopoverWindow
.EditTextSpec
accept now a TextView.OnEditorActionListener
.TextDrawable
Span click detection got fixed for multi-line Spans.HorisontalScrollSpec
now supports RTL.Published by passy almost 7 years ago
TestSpecs offer a new way to test your components. Check out the post in our Facebook group or jump straight into the docs.
v0.11.0 is the last release of Litho that comes with Stetho support. We are removing the integration with the next release (v0.12.0). We are really sorry for the inconvenience that we know this will cause some people but we think that it will be good for the future as it allows us to move faster and provide a better debugging experience down the line. We have nothing to announce in that regard just yet.
Published by passy almost 7 years ago
What? Another release already? Yes, and there have been some interesting changes.
Layout
was renamed to Wrapper
: 38837d74e6bdcf73d9bee6d8e5ffa5b7580711ba
The new API is more Component-y and takes your delegate as a prop rather as part of the constructor call. Instead of writing Layout.create(c, component)
, you now write Wrapper.create(c).delegate(component)
. @IanChilds wrote a handy codemod script to help you with the transition. You can use it like this: git grep "import com.facebook.litho.Layout;" -l | xargs -L1 python WrapperForLayout.py
.