当前位置:  开发笔记 > 编程语言 > 正文

Android数据绑定设置alignParentTop

如何解决《Android数据绑定设置alignParentTop》经验,为你挑选了1个好方法。

我有以下布局(仅剩下相关部分):


    

我尝试layout_alignParentTop使用块中声明的变量设置属性,如下所示:


    



    

但是在尝试编译时,android studio说如下:

错误:找不到参数类型为java.lang.Boolean的属性'android:layout_alignParentTop'的setter.

如何layout_alignParentTop使用数据绑定变量设置属性?



1> AdamMc331..:

我不得不深入研究这个问题,并在Google Code中找到了最新的问题.

引用其中一个项目成员:

我们明确地不支持布局属性的数据绑定,尽管您可以在技术上自己添加它们.问题是这些可能很容易被试图动画它们的人滥用.

要为您的应用程序实现这些,请创建绑定适配器:

@BindingAdapter("android:layout_width")
public static void setLayoutWidth(View view, int width) {
  LayoutParams layoutParams = view.getLayoutParams();
  layoutParams.width = width;
  view.setLayoutParams(layoutParams);
}

在您的情况下,您只需要稍微调整alignParentTop属性:

@BindingAdapter("android:layout_alignParentTop")
public static void setAlignParentTop(View view, boolean alignParentTop) {
   RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.WRAP_CONTENT,
      RelativeLayout.LayoutParams.WRAP_CONTENT);

   if(alignParentTop) {
      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
   }

   view.setLayoutParams(layoutParams);
}

这是未经测试的,但它应该足以让您走上正确的轨道.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有