package com.beloo.widget.chipslayoutmanager.gravity; import android.util.SparseArray; import android.view.Gravity; import com.beloo.widget.chipslayoutmanager.SpanLayoutChildGravity; public class RowGravityModifiersFactory implements IGravityModifiersFactory { private SparseArray<IGravityModifier> gravityModifierMap; public RowGravityModifiersFactory() { gravityModifierMap = new SparseArray<>(); CenterInRowGravityModifier centerInRowGravityModifier = new CenterInRowGravityModifier(); TopGravityModifier topGravityModifier = new TopGravityModifier(); BottomGravityModifier bottomGravityModifier = new BottomGravityModifier(); gravityModifierMap.put(Gravity.TOP, topGravityModifier); gravityModifierMap.put(Gravity.BOTTOM, bottomGravityModifier); gravityModifierMap.put(Gravity.CENTER, centerInRowGravityModifier); gravityModifierMap.put(Gravity.CENTER_VERTICAL, centerInRowGravityModifier); } public IGravityModifier getGravityModifier(@SpanLayoutChildGravity int gravity) { IGravityModifier gravityModifier = gravityModifierMap.get(gravity); if (gravityModifier == null) { gravityModifier = gravityModifierMap.get(Gravity.CENTER_VERTICAL); } return gravityModifier; } }