anvil-ui / anvil-ui/anvil

How to use anvil with ConstraintLayout?

オープン
#116 コメント 2 件 リアクション 1 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
1.4k
フォーク
89
PR マージ指標
30日以内にマージされた PR はありません

説明

I wrote a helper class:
```java
package trikita.anvil.constraint;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.constraint.ConstraintLayout;
import android.support.constraint.ConstraintSet;
import android.support.constraint.Guideline;
import android.view.View;

import com.android.Action;
import com.android.widget.ConstraintLayoutUtils;

import trikita.anvil.Anvil;
import trikita.anvil.Anvil.AttributeSetter;
import trikita.anvil.Anvil.Renderable;
import trikita.anvil.BaseDSL.ViewClassResult;

import static trikita.anvil.BaseDSL.attr;
import static trikita.anvil.BaseDSL.v;

/**
* Created by JKL on 2017/3/24.
*/
public final class ConstraintDSL implements AttributeSetter {

static {
Anvil.registerAttributeSetter(new ConstraintDSL());
}

public static Void constraintBaselineToBaseline(final int value) {
return attr("constraintBaselineToBaseline", value);
}

public static Void constraintBottomToBottom(final int value) {
return attr("constraintBottomToBottom", value);
}

public static Void constraintBottomToTop(final int value) {
return attr("constraintBottomToTop", value);
}

public static Void constraintDimensionRatio(final String value) {
return attr("constraintDimensionRatio", value);
}

public static Void constraintEditorAbsoluteX(final int value) {
return attr("constraintEditorAbsoluteX", value);
}

public static Void constraintEditorAbsoluteY(final int value) {
return attr("constraintEditorAbsoluteY", value);
}

public static Void constraintEndToEnd(final int value) {
return attr("constraintEndToEnd", value);
}

public static Void constraintEndToStart(final int value) {
return attr("constraintEndToStart", value);
}

public static Void constraintGoneBottomMargin(final int value) {
return attr("constraintGoneBottomMargin", value);
}

public static Void constraintGoneEndMargin(final int value) {
return attr("constraintGoneEndMargin", value);
}

public static Void constraintGoneLeftMargin(final int value) {
return attr("constraintGoneLeftMargin", value);
}

public static Void constraintGoneRightMargin(final int value) {
return attr("constraintGoneRightMargin", value);
}

public static Void constraintGoneStartMargin(final int value) {
return attr("constraintGoneStartMargin", value);
}

public static Void constraintGoneTopMargin(final int value) {
return attr("constraintGoneTopMargin", value);
}

public static Void constraintGuideBegin(final int value) {
return attr("constraintGuideBegin", value);
}

public static Void constraintGuideEnd(final int value) {
return attr("constraintGuideEnd", value);
}

public static Void constraintGuidePercent(final float value) {
return attr("constraintGuidePercent", value);
}

public static Void constraintHorizontalBias(final float bias) {
return attr("constraintVerticalBias", bias);
}

public static Void constraintHorizontalChainStyle(final int style) {
return attr("constraintHorizontalChainStyle", style);
}

public static Void constraintHorizontalWeight(final float weight) {
return attr("constraintHorizontalWeight", weight);
}

public static ViewClassResult constraintLayout() {
return v(ConstraintLayout.class);
}

public static Void constraintLayout(@NonNull final Renderable render) {
return v(ConstraintLayout.class, render);
}

public static Void constraintLeftToLeft(final int value) {
return attr("constraintLeftToLeft", value);
}

public static Void constraintLeftToRight(final int value) {
return attr("constraintLeftToRight", value);
}

public static Void constraintMatchConstraintDefaultHeight(final int value) {
return attr("constraintMatchConstraintDefaultHeight", value);
}

public static Void constraintMatchConstraintDefaultWidth(final int value) {
return attr("constraintMatchConstraintDefaultWidth", value);
}

public static Void constraintMatchConstraintMaxHeight(final int value) {
return attr("constraintMatchConstraintMaxHeight", value);
}

public static Void constraintMatchConstraintMaxWidth(final int value) {
return attr("constraintMatchConstraintMaxWidth", value);
}

public static Void constraintMatchConstraintMinHeight(final int value) {
return attr("constraintMatchConstraintMinHeight", value);
}

public static Void constraintMatchConstraintMinWidth(final int value) {
return attr("constraintMatchConstraintMinWidth", value);
}

public static Void constraintOrientation(final int value) {
return attr("constraintOrientation", value);
}

public static Void constraintRightToLeft(final int value) {
return attr("constraintRightToLeft", value);
}

public static Void constraintRightToRight(final int value) {
return attr("constraintRightToRight", value);
}

public static Void constraintStartToEnd(final int value) {
return attr("constraintStartToEnd", value);
}

public static Void constraintStartToStart(final int value) {
return attr("constraintStartToStart", value);
}

public static Void constraintTopToBottom(final int value) {
return attr("constraintTopToBottom", value);
}

public static Void constraintTopToTop(final int value) {
return attr("constraintTopToTop", value);
}

public static Void constraintVerticalBias(final float bias) {
return attr("constraintVerticalBias", bias);
}

public static Void constraintVerticalChainStyle(final int style) {
return attr("constraintVerticalChainStyle", style);
}

public static Void constraintVerticalWeight(final float weight) {
return attr("constraintVerticalWeight", weight);
}

public static ViewClassResult guideline() {
return v(Guideline.class);
}

public static Void guideline(@NonNull final Renderable render) {
return v(Guideline.class, render);
}

public static void apply(@NonNull final Action applyer) {
final ConstraintLayout parent = Anvil.currentView();
if (parent == null) return;
ConstraintLayoutUtils.apply(parent, applyer);
}

@Override
public boolean set(@NonNull View v, @NonNull String name, @Nullable Object value, @Nullable Object prevValue) {
switch (name) {
case "constraintHorizontalWeight":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Float) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.horizontalWeight = (float) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintVerticalWeight":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Float) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.verticalWeight = (float) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintHorizontalBias":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Float) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.horizontalBias = (float) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintVerticalBias":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Float) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.verticalBias = (float) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintHorizontalChainStyle":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.horizontalChainStyle = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintVerticalChainStyle":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.verticalChainStyle = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintGuideBegin":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Float) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.guideBegin = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintGuideEnd":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Float) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.guideEnd = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintGuidePercent":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Float) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.guidePercent = (float) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintLeftToLeft":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.leftToLeft = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintLeftToRight":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.leftToRight = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintRightToLeft":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.rightToLeft = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintRightToRight":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.rightToRight = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintTopToTop":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.topToTop = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintTopToBottom":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.topToBottom = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintBottomToTop":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.bottomToTop = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintBottomToBottom":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.bottomToBottom = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintBaselineToBaseline":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.baselineToBaseline = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintStartToEnd":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.startToEnd = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintStartToStart":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.startToStart = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintEndToStart":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.endToStart = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintEndToEnd":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.endToEnd = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintGoneLeftMargin":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.goneLeftMargin = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintGoneTopMargin":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.goneTopMargin = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintGoneRightMargin":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.goneRightMargin = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintGoneBottomMargin":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.goneBottomMargin = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintGoneStartMargin":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.goneStartMargin = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintGoneEndMargin":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.goneEndMargin = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintDimensionRatio":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof String) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.dimensionRatio = (String) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintMatchConstraintDefaultWidth":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.matchConstraintDefaultWidth = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintMatchConstraintDefaultHeight":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.matchConstraintDefaultHeight = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintMatchConstraintMinWidth":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.matchConstraintMinWidth = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintMatchConstraintMaxWidth":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.matchConstraintMaxWidth = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintMatchConstraintMinHeight":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.matchConstraintMinHeight = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintMatchConstraintMaxHeight":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.matchConstraintMaxHeight = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintEditorAbsoluteX":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.editorAbsoluteX = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintEditorAbsoluteY":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.editorAbsoluteY = (int) value;
v.setLayoutParams(params);
return true;
}
break;
case "constraintOrientation":
if (v.getLayoutParams() instanceof ConstraintLayout.LayoutParams && value != null && value instanceof Integer) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) v.getLayoutParams();
params.orientation = (int) value;
v.setLayoutParams(params);
return true;
}
break;
}
return false;
}
}

```
But it did not work
Any idea?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。