Java 类com.facebook.litho.ComponentContext 实例源码
项目:redux-observable
文件:ProductSlideComponentSpec.java
@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();
}
项目:litho-glide
文件:TitleComponentSpec.java
@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();
}
项目:litho-picasso
文件:TitleComponentSpec.java
@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();
}
项目:litho-picasso
文件:Demos.java
public static void initialize(Context context) {
final ComponentContext c = new ComponentContext(context);
final RecyclerBinder glideRecyclerBinder = new RecyclerBinder(
c,
4.0f,
new LinearLayoutInfo(c, OrientationHelper.VERTICAL, false));
DataModel.populateBinderWithSampleDataForGlide(glideRecyclerBinder, c);
demoModels = new LinkedHashMap<>();
demoModels.put(
"Lithography - Picasso",
LithographyRootComponent.create(c)
.recyclerBinder(glideRecyclerBinder)
.build());
demoModels.put("Playground", PlaygroundComponent.create(c).build());
}
项目:redux-observable
文件:HomeActivity.java
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_repos);
bindViews(this);
componentContext = new ComponentContext(this);
recyclerBinder = new RecyclerBinder(
componentContext, 4.0f, new LinearLayoutInfo(this, OrientationHelper.VERTICAL, false));
sRefresh.setOnRefreshListener(() -> store.dispatch(HomeAction.REFRESH));
}
项目:redux-observable
文件:ProductComponentSpec.java
@OnEvent(ClickEvent.class)
static void onClick(
ComponentContext c,
@FromEvent View view,
@Prop final Product product) {
}
项目:redux-observable
文件:HomeListComponentSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(ComponentContext c, @Prop RecyclerBinder binder) {
return Recycler.create(c)
.binder(binder)
.withLayout().flexShrink(0)
.testKey(MAIN_SCREEN)
.build();
}
项目:redux-observable
文件:SingleBannerComponentSpec.java
@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();
}
项目:redux-observable
文件:SingleBannerComponentSpec.java
@OnEvent(ClickEvent.class)
static void onClick(
ComponentContext c,
@FromEvent View view,
@Prop final SingleBannerSection payload) {
}
项目:redux-observable
文件:TripleBannersComponentSpec.java
@OnEvent(ClickEvent.class)
static void onClickFirstBanner(
ComponentContext c,
@FromEvent View view,
@Prop final TripleBannerSection payload) {
}
项目:redux-observable
文件:TripleBannersComponentSpec.java
@OnEvent(ClickEvent.class)
static void onClickSecondBanner(
ComponentContext c,
@FromEvent View view,
@Prop final TripleBannerSection payload) {
}
项目:redux-observable
文件:TripleBannersComponentSpec.java
@OnEvent(ClickEvent.class)
static void onClickThirdBanner(
ComponentContext c,
@FromEvent View view,
@Prop final TripleBannerSection payload) {
}
项目:litho-glide
文件:GlideSingleImageComponentSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(
ComponentContext c,
@Prop String image,
@Prop(optional = true) float imageAspectRatio) {
return GlideImage.create(c)
.imageUrl(image)
.aspectRatio(imageAspectRatio)
.centerCrop(true)
.buildWithLayout();
}
项目:litho-glide
文件:FeedItemComponentSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(ComponentContext c, @Prop final ArtistDatum artist,
@Prop final RecyclerBinder binder) {
return Column.create(c)
.child(Column.create(c)
.child(artist.getImages().length == 1 ? getImageComponent(c, artist)
: getRecyclerComponent(c, binder))
.child(TitleComponent.create(c).title(artist.getName()))
.child(ActionsComponent.create(c)))
.child(FooterComponent.create(c).text(artist.getBiography()))
.build();
}
项目:litho-glide
文件:FeedItemCardSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(ComponentContext c, @Prop final ArtistDatum artist, @Prop final RecyclerBinder binder) {
return Column.create(c)
.flexShrink(0)
.alignContent(YogaAlign.FLEX_START)
.paddingDip(VERTICAL, 8)
.paddingDip(HORIZONTAL, 16)
.child(Card.create(c)
.content(FeedItemComponent.create(c).artist(artist).binder(binder)))
.build();
}
项目:litho-glide
文件:DataModel.java
public static void populateBinderWithSampleDataForGlide(RecyclerBinder recyclerBinder,
ComponentContext c) {
final Datum[] dataModels = SampleDataForGlide();
for (Datum datum : dataModels) {
ComponentRenderInfo.Builder componentInfoBuilder = ComponentRenderInfo.create();
componentInfoBuilder.component(datum.createComponent(c)).isSticky(datum instanceof Decade);
recyclerBinder.insertItemAt(recyclerBinder.getItemCount(), componentInfoBuilder.build());
}
}
项目:litho-glide
文件:GlideArtist.java
@Override public Component createComponent(ComponentContext c) {
final RecyclerBinder imageRecyclerBinder = new RecyclerBinder.Builder().layoutInfo(
new LinearLayoutInfo(c, OrientationHelper.HORIZONTAL, false)).build(c);
for (String image : images) {
ComponentRenderInfo.Builder imageComponentInfoBuilder = ComponentRenderInfo.create();
imageComponentInfoBuilder.component(
GlideSingleImageComponent.create(c).image(image).aspectRatio(2).build());
imageRecyclerBinder.insertItemAt(imageRecyclerBinder.getItemCount(),
imageComponentInfoBuilder.build());
}
return FeedItemCard.create(c).artist(this).binder(imageRecyclerBinder).build();
}
项目:litho-glide
文件:ActionsComponentSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(
ComponentContext c) {
return Row.create(c)
.backgroundColor(0xDDFFFFFF)
.positionType(YogaPositionType.ABSOLUTE)
.positionDip(YogaEdge.RIGHT, 4)
.positionDip(YogaEdge.TOP, 4)
.paddingDip(YogaEdge.ALL, 2)
.child(FavouriteButton.create(c))
.build();
}
项目:litho-glide
文件:LithographyRootComponentSpec.java
@OnCreateLayout static ComponentLayout onCreateLayout(ComponentContext c,
@Prop final RecyclerBinder recyclerBinder) {
return Recycler.create(c)
.binder(recyclerBinder)
.flexShrink(0)
.paddingDip(YogaEdge.TOP, 8)
.testKey(MAIN_SCREEN)
.buildWithLayout();
}
项目:litho-glide
文件:DecadeSeparatorSpec.java
@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();
}
项目:litho-glide
文件:FavouriteButtonSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(
ComponentContext c,
@State boolean favourited) {
return Row.create(c)
.backgroundRes(favourited ? star_on : star_off)
.widthDip(32)
.heightDip(32)
.clickHandler(FavouriteButton.onClick(c))
.build();
}
项目:litho-glide
文件:FooterComponentSpec.java
@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();
}
项目:litho-glide
文件:DemoListItemComponentSpec.java
@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();
}
项目:litho-glide
文件:DemoListItemComponentSpec.java
@OnEvent(ClickEvent.class)
static void onClick(
ComponentContext c,
@FromEvent View view,
@Prop final String name) {
final Intent intent = new Intent(c, DemoActivity.class);
intent.putExtra("demoName", name);
c.startActivity(intent);
}
项目:litho-glide
文件:DemoListActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Demos.initialize(this);
setContentView(
LithoView.create(
this,
DemoListComponent.create(new ComponentContext(this))
.build()));
}
项目:litho-glide
文件:DemoListComponentSpec.java
@OnCreateLayout static ComponentLayout onCreateLayout(ComponentContext c) {
final RecyclerBinder recyclerBinder = new RecyclerBinder.Builder().layoutInfo(
new LinearLayoutInfo(c, OrientationHelper.VERTICAL, false)).build(c);
Demos.addAllToBinder(recyclerBinder, c);
return Recycler.create(c)
.binder(recyclerBinder)
.flexShrink(0)
.testKey(MAIN_SCREEN)
.buildWithLayout();
}
项目:litho-glide
文件:Demos.java
public static void initialize(Context context) {
final ComponentContext c = new ComponentContext(context);
final RecyclerBinder glideRecyclerBinder = new RecyclerBinder.Builder().layoutInfo(
new LinearLayoutInfo(c, OrientationHelper.VERTICAL, false)).build(c);
DataModel.populateBinderWithSampleDataForGlide(glideRecyclerBinder, c);
demoModels = new LinkedHashMap<>();
demoModels.put("Lithography - Glide",
LithographyRootComponent.create(c).recyclerBinder(glideRecyclerBinder).build());
demoModels.put("Playground", PlaygroundComponent.create(c).build());
}
项目:litho-glide
文件:Demos.java
public static void addAllToBinder(RecyclerBinder recyclerBinder, ComponentContext c) {
for (String name : demoModels.keySet()) {
ComponentRenderInfo.Builder componentInfoBuilder = ComponentRenderInfo.create();
componentInfoBuilder.component(DemoListItemComponent.create(c).name(name).build());
recyclerBinder.insertItemAt(recyclerBinder.getItemCount(), componentInfoBuilder.build());
}
}
项目:litho-glide
文件:PlaygroundComponentSpec.java
@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();
}
项目:litho-picasso
文件:FeedItemComponentSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(ComponentContext c, @Prop final ArtistDatum artist,
@Prop final RecyclerBinder binder) {
return Column.create(c)
.child(Column.create(c)
.child(artist.getImages().length == 1 ? getImageComponent(c, artist)
: getRecyclerComponent(c, binder))
.child(TitleComponent.create(c).title(artist.getName()))
.child(ActionsComponent.create(c)))
.child(FooterComponent.create(c).text(artist.getBiography()))
.build();
}
项目:litho-picasso
文件:FeedItemCardSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(ComponentContext c, @Prop final ArtistDatum artist, @Prop final RecyclerBinder binder) {
return Column.create(c)
.flexShrink(0)
.alignContent(YogaAlign.FLEX_START)
.paddingDip(VERTICAL, 8)
.paddingDip(HORIZONTAL, 16)
.child(Card.create(c)
.content(FeedItemComponent.create(c).artist(artist).binder(binder)))
.build();
}
项目:litho-picasso
文件:DataModel.java
public static void populateBinderWithSampleDataForGlide(
RecyclerBinder recyclerBinder,
ComponentContext c) {
final Datum[] dataModels = SampleDataForGlide();
for (Datum datum : dataModels) {
ComponentInfo.Builder componentInfoBuilder = ComponentInfo.create();
componentInfoBuilder
.component(datum.createComponent(c))
.isSticky(datum instanceof Decade);
recyclerBinder.insertItemAt(recyclerBinder.getItemCount(), componentInfoBuilder.build());
}
}
项目:litho-picasso
文件:PicassoArtist.java
@Override
public Component createComponent(ComponentContext c) {
final RecyclerBinder imageRecyclerBinder =
new RecyclerBinder(c, 4.0f, new LinearLayoutInfo(c, OrientationHelper.HORIZONTAL, false));
for (String image : images) {
ComponentInfo.Builder imageComponentInfoBuilder = ComponentInfo.create();
imageComponentInfoBuilder.component(
PicassoSingleImageComponent.create(c).image(image).fit(true).build());
imageRecyclerBinder.insertItemAt(imageRecyclerBinder.getItemCount(),
imageComponentInfoBuilder.build());
}
return FeedItemCard.create(c).artist(this).binder(imageRecyclerBinder).build();
}
项目:litho-picasso
文件:ActionsComponentSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(
ComponentContext c) {
return Row.create(c)
.backgroundColor(0xDDFFFFFF)
.positionType(YogaPositionType.ABSOLUTE)
.positionDip(YogaEdge.RIGHT, 4)
.positionDip(YogaEdge.TOP, 4)
.paddingDip(YogaEdge.ALL, 2)
.child(FavouriteButton.create(c))
.build();
}
项目:litho-picasso
文件:LithographyRootComponentSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(
ComponentContext c,
@Prop final RecyclerBinder recyclerBinder) {
return Recycler.create(c)
.binder(recyclerBinder)
.withLayout().flexShrink(0)
.paddingDip(YogaEdge.TOP, 8)
.testKey(MAIN_SCREEN)
.build();
}
项目:litho-picasso
文件:DecadeSeparatorSpec.java
@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();
}
项目:litho-picasso
文件:FavouriteButtonSpec.java
@OnCreateLayout
static ComponentLayout onCreateLayout(
ComponentContext c,
@State boolean favourited) {
return Row.create(c)
.backgroundRes(favourited ? star_on : star_off)
.widthDip(32)
.heightDip(32)
.clickHandler(FavouriteButton.onClick(c))
.build();
}
项目:litho-picasso
文件:FooterComponentSpec.java
@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();
}
项目:litho-picasso
文件:DemoListItemComponentSpec.java
@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();
}
项目:litho-picasso
文件:DemoListItemComponentSpec.java
@OnEvent(ClickEvent.class)
static void onClick(
ComponentContext c,
@FromEvent View view,
@Prop final String name) {
final Intent intent = new Intent(c, DemoActivity.class);
intent.putExtra("demoName", name);
c.startActivity(intent);
}