ConstrainLayout라이브러리에서는 기본 바인딩어댑터를 제공하지 않는 듯 하다.

그래서 다음과 같이 이미지뷰 비율 조절을 위한 바인딩 어댑터를 추가했다.

public class ConstraintLayoutBindingAdapter {
    @BindingAdapter("layout_constraintDimensionRatio")
    public static void setConstraintDimensionRatio(View view, String ratio){
        if(view.getParent() instanceof ConstraintLayout){
            ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) view.getLayoutParams();
            layoutParams.dimensionRatio = ratio;
            view.setLayoutParams(layoutParams);
        }
    }
}
public class MyViewModel {
    private int width, height;

    public String getAspectRatio() {
        return String.format("%d:%d", width, height);
    }

    ...

}
<ImageView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    ...
    app:layout_constraintDimensionRatio="@{viewModel.aspectRatio}"
    />

 

Buy me a coffeeBuy me a coffee
카테고리: Android

0개의 댓글

답글 남기기

이메일은 공개되지 않습니다.