All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.airbnb.epoxy.ModelView Maven / Gradle / Ivy

package com.airbnb.epoxy;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import androidx.annotation.LayoutRes;

/**
 * An annotation on custom view classes to automatically generate an EpoxyModel for that view. Used
 * in conjunction with {@link ModelProp}
 * 

* See https://github.com/airbnb/epoxy/wiki/Generating-Models-from-View-Annotations */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.CLASS) public @interface ModelView { /** * Use with {@link #autoLayout()} to declare what layout parameters should be used to size your * view when it is added to a RecyclerView. This maps to the LayoutParams options {@code * layout_width} and {@code layout_height}. */ enum Size { NONE, WRAP_WIDTH_WRAP_HEIGHT, WRAP_WIDTH_MATCH_HEIGHT, MATCH_WIDTH_WRAP_HEIGHT, MATCH_WIDTH_MATCH_HEIGHT } /** * If set to an option besides {@link Size#NONE} Epoxy will create an instance of this view * programmatically at runtime instead of inflating the view from xml. This is an alternative to * using {@link #defaultLayout()}, and is a good option if you just need to specify layout * parameters on your view with no other styling. *

* The size option you choose will define which layout parameters Epoxy uses at runtime when * creating the view. */ Size autoLayout() default Size.NONE; /** * The layout file to use in the generated model to inflate the view. This is required unless a * default pattern is set via {@link PackageModelViewConfig} or {@link #autoLayout()} is used. *

* Overrides any default set in {@link PackageModelViewConfig} */ @LayoutRes int defaultLayout() default 0; /** * An optional EpoxyModel subclass to use as the base class of the generated view. A default can * also be set with {@link PackageModelViewConfig} *

* * Overrides any default set in {@link PackageModelViewConfig} */ Class baseModelClass() default Void.class; /** * Whether the model should save view state when unbound. *

* see: EpoxyModel#shouldSaveViewState */ boolean saveViewState() default false; /** * True to have the generated model take up the total available span count. False to instead use a * span count of 1. If you need to programmatically determine your model's span size you can use * the spanSizeCallback method on EpoxyModel. */ boolean fullSpan() default true; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy