@OnCreateLayout static ComponentLayout onCreateLayout(ComponentContext c, @Prop String title, @Prop RecyclerBinder recyclerBinder) { return Column.create(c) .child( Text.create(c) .text(title) .glyphWarming(true) .textSizeSp(16) .withLayout() .paddingDip(TOP, 8) .paddingDip(BOTTOM, 4) .heightDip(44) ) .paddingDip(LEFT, 8) .paddingDip(RIGHT, 8) .child( Recycler.create(c) .hasFixedSize(true) .binder(recyclerBinder) ) .build(); }
@OnCreateLayout static ComponentLayout onCreateLayout( ComponentContext c, @Prop(resType = STRING) String title) { return Text.create(c) .text(title) .textStyle(BOLD) .textSizeDip(24) .withLayout().flexShrink(0) .backgroundColor(0xDDFFFFFF) .positionType(YogaPositionType.ABSOLUTE) .positionDip(YogaEdge.BOTTOM, 4) .positionDip(YogaEdge.LEFT, 4) .paddingDip(YogaEdge.HORIZONTAL, 6) .build(); }
@OnCreateLayout static ComponentLayout onCreateLayout(ComponentContext c, @Prop SingleBannerSection payload) { final DraweeController controller = Fresco.newDraweeControllerBuilder() .setUri(payload.banner().imageUrl()) .build(); return Column.create(c) .child( Text.create(c) .text(payload.title()) .glyphWarming(true) .textSizeSp(16) .withLayout() .paddingDip(TOP,8) .paddingDip(BOTTOM,4) .heightDip(44) ) .paddingDip(LEFT, 8) .paddingDip(RIGHT, 8) .child( FrescoImage.create(c) .controller(controller) .actualImageScaleType( ScalingUtils .ScaleType .CENTER_CROP ) .withLayout() .heightPx((int) (DisplayUtil.getScreenWidth(c) / payload.banner().ratio())) ) .clickHandler(SingleBannerComponent.onClick(c)) .build(); }
@OnCreateLayout static ComponentLayout onCreateLayout( ComponentContext c, @Prop final Decade decade) { return Row.create(c) .alignItems(YogaAlign.CENTER) .paddingDip(YogaEdge.ALL, 16) .child( Row.create(c) .heightPx(1) .backgroundColor(0xFFAAAAAA) .flex(1)) .child( Text.create(c) .text(String.valueOf(decade.year)) .textSizeDip(14) .textColor(0xFFAAAAAA) .withLayout() .marginDip(YogaEdge.HORIZONTAL, 10) .flex(0)) .child( Row.create(c) .heightPx(1) .backgroundColor(0xFFAAAAAA) .flex(1)) .backgroundColor(0xFFFAFAFA) .build(); }
@OnCreateLayout static ComponentLayout onCreateLayout( ComponentContext c, @Prop(resType = STRING) String text) { return Column.create(c).flexShrink(0).alignContent(YogaAlign.FLEX_START) .paddingDip(YogaEdge.ALL, 8) .child( Text.create(c) .text(text) .textSizeDip(14) .textColor(GRAY) .textStyle(ITALIC)) .build(); }
@OnCreateLayout static ComponentLayout onCreateLayout( ComponentContext c, @Prop final String name) { return Column.create(c).flexShrink(0).alignContent(YogaAlign.FLEX_START) .paddingDip(ALL, 16) .child( Text.create(c) .text(name) .textSizeSp(18) .build()) .clickHandler(DemoListItemComponent.onClick(c)) .build(); }
@OnCreateLayout static ComponentLayout onCreateLayout(ComponentContext c) { return Column.create(c).flexShrink(0).alignContent(YogaAlign.FLEX_START) .backgroundColor(Color.WHITE) .child( Text.create(c) .textSizeSp(20) .text("Playground sample")) .build(); }
@Override public void initData() { final ComponentContext c = new ComponentContext(this); final LithoView lithoView = LithoView.create( this /* context */, Text.create(c) .text("Hello, World!") .textSizeDip(50) .build()); setContentView(lithoView); }
@OnCreateLayout static ComponentLayout onCreateLayout(ComponentContext c, @Prop Product product) { final DraweeController controller = Fresco.newDraweeControllerBuilder() .setUri(product.imageUrl()) .build(); return Column.create(c) .backgroundColor(Color.WHITE) .child( FrescoImage.create(c) .controller(controller) .actualImageScaleType( ScalingUtils .ScaleType .CENTER_CROP ) .withLayout() .heightDip(96) .widthDip(96) .alignSelf(YogaAlign.CENTER) ).child( Text.create(c) .text(product.name()) .maxLines(2) .minLines(2) .ellipsize(TextUtils.TruncateAt.MIDDLE) .glyphWarming(true) .textAlignment(Layout.Alignment.ALIGN_CENTER) .textSizeSp(14) .withLayout() .widthDip(128) .paddingDip(TOP, 8) ) .child( Text.create(c) .text(FormatUtil.getFormattedCurrency(product.price())) .glyphWarming(true) .textSizeSp(14) .withLayout() .paddingDip(TOP, 8) ).child( Text.create(c) .text(FormatUtil.getFormattedCurrency(product.originalPrice())) .glyphWarming(true) .textSizeSp(12) .withLayout() .paddingDip(BOTTOM, 8) ).clickHandler(ProductComponent.onClick(c)) .paddingDip(ALL, 8) .build(); }
@OnCreateLayout static ComponentLayout onCreateLayout(ComponentContext c, @Prop TripleBannerSection payload) { final DraweeController controllerBanner1 = Fresco.newDraweeControllerBuilder() .setUri(payload.banners().get(0).imageUrl()) .build(); final DraweeController controllerBanner2 = Fresco.newDraweeControllerBuilder() .setUri(payload.banners().get(1).imageUrl()) .build(); final DraweeController controllerBanner3 = Fresco.newDraweeControllerBuilder() .setUri(payload.banners().get(2).imageUrl()) .build(); return Column.create(c) .child( Text.create(c) .text(payload.title()) .glyphWarming(true) .textSizeSp(16) .withLayout() .paddingDip(TOP, 8) .paddingDip(BOTTOM, 4) .heightDip(44) ) .paddingDip(LEFT, 8) .paddingDip(RIGHT, 8) .child( Row.create(c) .heightPx((int) (DisplayUtil.getScreenWidth(c) / payload.banners().get(0).ratio())) .child( FrescoImage.create(c) .controller(controllerBanner1) .actualImageScaleType(ScalingUtils .ScaleType.FIT_XY) .withLayout() .flex(1) .widthPercent(50) ) .clickHandler(TripleBannersComponent.onClickFirstBanner(c)) .child( Column.create(c) .child( FrescoImage.create(c) .controller(controllerBanner2) .actualImageScaleType(ScalingUtils.ScaleType.CENTER_CROP) .withLayout() .heightPercent(50) .flex(1) ) .clickHandler(TripleBannersComponent.onClickSecondBanner(c)) .child( FrescoImage.create(c) .controller(controllerBanner3) .actualImageScaleType(ScalingUtils.ScaleType.CENTER_CROP) .withLayout() .flex(1) .heightPercent(50) ) .widthPercent(100) .clickHandler(TripleBannersComponent.onClickThirdBanner(c))) ) .build(); }