Назначьте процент для 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;
}