데이터 바인딩을 사용하여 하위 뷰의 너비를 설정하는 방법. 설정할 값은 동적이며 부모 레이아웃의 너비에 따라 다릅니다.android 데이터 바인딩 parent_width에서 layout_width를 설정하십시오.
item_bar.xml는
<LinearLayout
android:id="@+id/barLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="@{model.usedBarWidthPercentage}"
android:layout_height="4dp"/>
</LinearLayout>
모델은 나에게 비율을 제공 할 수 있습니다. 예를 들어 비율이 40 %이면 텍스트 레이아웃의 너비가 상위 레이아웃의 40 % 여야 함을 의미합니다.
데이터 바인딩 어댑터를 사용하는 아이디어는 알고 있지만 부모 레이아웃의 너비를 사용하여 레이아웃을 수행하는 방법을 모릅니다.
@ 수행되는 일을 결국 무엇을, 나는 바인딩 어댑터를 사용하는 방법을 알고있다. 하지만 부모 레이아웃의 너비를 전달하는 방법을 모른다. – iori24
@ iori24 당신은'Final ViewTreeObserver vto = binding.cd.getViewTreeObserver();)를 사용할 수 있습니다. vto.addOnGlobalLayoutListener (새 ViewTreeObserver.OnGlobalLayoutListener() { @Override 공개 무효 onGlobalLayout() { binding.cd.getViewTreeObserver() removeOnGlobalLayoutListener (본). INT 폭 = binding.cd.getMeasuredWidth(); INT height = binding.cd.getMeasuredHeight(); 모델입니다.setMeasure (width); } }) ' – Raghunandan
@Raghunandan thanks bro – iori24