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}" />
0개의 댓글