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개의 댓글