Назначьте процент для PercentFrameLayout с привязкой данных

Пытаюсь создать простой график с макетом, используя библиотеку поддержки процентов, но я не могу понять, как назначить проценты для просмотра через привязку данных. Пробовал возвращать String "60%", float 0.6f, Float 0.6f, int 60. Ничего не работает.

 <View
   android:id="@+id/graph_before"
   android:layout_height="@dimen/list_graph_line_height"
   android:layout_gravity="center_vertical"
   android:background="@color/colorAccent"
   app:layout_marginLeftPercent="@{item.percentValueLeft}"
   app:layout_widthPercent="@{item.percentValueWidth}"
   />

1 ответ

Решение

Способ сделать это с помощью пользовательских сеттеров в привязке данных и PercentLayoutInfo:

@BindingAdapter("app:layout_widthPercent")
public static void setWidthPercent(View view, float width) {
    PercentLayoutHelper.PercentLayoutParams params =(PercentLayoutHelper.PercentLayoutParams) view.getLayoutParams();
    PercentLayoutHelper.PercentLayoutInfo info = params.getPercentLayoutInfo();
    info.weightPercent = width;
}
Другие вопросы по тегам