我想在数据绑定结构中设置动态布局高度.

我试了一下,但我得到了这个例外:

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference

at databinding.ItemGroupCommentsBinding.executeBindings(ItemGroupCommentsBinding.java:147)

at android.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:355)

at view.base.adapter.DataBindingAdapter.onBindViewHolder(DataBindingAdapter.java:32)

at view.base.adapter.DataBindingAdapter.onBindViewHolder(DataBindingAdapter.java:15)

at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6279)

at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6312)

at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5258)

at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5521)

at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5363)

at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5359)

at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2141)

at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:556)

at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1488)

at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:585)

at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:170)

at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3506)

at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3254)

at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3767)

at android.view.View.layout(View.java:15604)

at android.view.ViewGroup.layout(ViewGroup.java:4966)

at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:636)

at android.view.View.layout(View.java:15604)

at android.view.ViewGroup.layout(ViewGroup.java:4966)

at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076)

at android.view.View.layout(View.java:15604)

at android.view.ViewGroup.layout(ViewGroup.java:4966)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)

at android.widget.FrameLayout.onLayout(FrameLayout.java:508)

at android.view.View.layout(View.java:15604)

at android.view.ViewGroup.layout(ViewGroup.java:4966)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)

at android.widget.FrameLayout.onLayout(FrameLayout.java:508)

at android.view.View.layout(View.java:15604)

at android.view.ViewGroup.layout(ViewGroup.java:4966)

at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)

at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)

at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)

at android.view.View.layout(View.java:15604)

at android.view.ViewGroup.layout(ViewGroup.java:4966)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)

at android.widget.FrameLayout.onLayout(FrameLayout.java:508)

at android.view.View.layout(View.java:15604)

at android.view.ViewGroup.layout(ViewGroup.java:4966)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)

at android.widget.FrameLayout.onLayout(FrameLayout.java:508)

at android.view.View.layout(View.java:15604)

at android.view.ViewGroup.layout(ViewGroup.java:4966)

at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)

at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)

at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)

at android.view.View.layout(View.java:15604)

at android.view.ViewGroup.layout(ViewGroup.java:4966)

at android.widget.FrameLayout.layoutChildren(FrameLayout.java:573)

at android.widget.FrameLayout.onLayout(FrameLayout.java:508)

代码是:

Fragment.java:

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

db = DataBindingUtil.inflate(inflater, R.layout.fragment_group_comments, container, false);

getSubComponent().inject(this);

db.setVariable(BR.height, 0);

// Inflate the layout for this fragment

return db.getRoot();

}

@BindingAdapter("android:layout_height")

public static void setLayoutHeight(View view, float commentNumber) {

Timber.e("setLayoutHeight " + commentNumber);

try {

GridLayoutManager.LayoutParams layoutParams =

(GridLayoutManager.LayoutParams) view.getLayoutParams();

if (10 <= commentNumber && commentNumber < 10) {

layoutParams.height = 400;

} else if (11 <= commentNumber && commentNumber < 20) {

layoutParams.height = 500;

}

view.setLayoutParams(layoutParams);

} catch (Exception ignore) {}

}

item_.xml

name="height"

type="Integer" />

android:id="@+id/view_item"

style="@style/RelativeLayout_WrapContent"

android:layout_height="@{height, default=wrap_content}">

style="@style/ImageView_WrapContent"

android:src="@mipmap/red_circle" />

android 绑定布局,android – 在数据绑定中设置动态布局高度相关推荐

  1. (android控件)ListView的Item中设置按钮实现

    前言 在项目的开发过程中,需要Listview的Item中包含按钮的效果.在实际开发过,Item中放置按钮后,ListView 单行选择背景颜色变化的效果没有了. 问题原因 ListView 和 其它 ...

  2. excel一列求和_在excel中设置动态求和其实很简单,三个函数即可轻松搞定

    Hello,大家好,今天跟大家分享下我们如何在excel中设置动态求和的效果,如下图,当我们更改姓名和月份的时候会根据我们选择的数据自动求和,比如:我们将名字设置为刘备,截止月份设置为12月,就会对刘 ...

  3. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性

    在进行UI布局的时候,可能常常会用到 android:gravity  和 android:layout_Gravity 这两个属性. 关于这两个属性的差别,网上已经有许多人进行了说明,这边再简单说一 ...

  4. android java style_Android 在Java代码中设置style属性--使用代码创建ProgressBar对象

    强烈推荐: 在andriod开发中,很大一部分都要与资源打交道,比如说:图片,布局文件,字符串,样式等等.这给我们想要开发一些公共的组件带来很大的困难,因为公共的组件可能更愿意以jar包的形式出现.但 ...

  5. android 百分比布局操作sp,constraintlayout中的百分比布局

    constraintlayout布局中为我们提供了,两种百分布局可以帮助我们去适配界面 第一种 layout_constraintVertical_bias 该属性代表的意思是垂直距离的百分比,默认0 ...

  6. android 设置按钮高度,如何在本机android中设置按钮的高度

    我正在学习反应 Android移动应用程序的本机编程.我正在制作一个我需要设置按钮高度的屏幕.我在视图中添加了按钮并设置了使用样式的高度,但按钮高度没有变化. /** * LoginComponent ...

  7. kodi remote android,使用Android和iOS在Win10系统中设置Kodi Remote方法

    Kodi是一个流行的流媒体应用程序,兼容windows操作系统和大多数其他设备,如Android,iOS,Linux等.Kodi是家庭娱乐的理想选择,基本上设计用于大屏幕.如果要在windows桌面上 ...

  8. android textview 绝对位置,android – 在运行时在RemoteView中设置TextView的位置

    亲爱的,我试图在appwidget中设置TextView的位置. 基本上,TextView可以直接访问属性: myRemoteView.setTextColor(R.id.myTextView,Col ...

  9. android textview layoutparams,从LayoutParams说起到代码动态布局

    本文说两点 1.介绍LayoutParams并且简单代码实现xml布局效果 2.代码动态控制RelativeLayout子控件的布局变化 一.LayoutParams LayoutParams 如果直 ...

最新文章

  1. php中的parse_ini_file函数
  2. java 共享内存获取写权限_跨进程访问共享内存的权限问题
  3. verilog中b',d',h'的意思
  4. 社工库网址与制作方法
  5. 在C ++中检查一个数组是否是另一个数组的子数组
  6. 该内存不能为read
  7. 网络虚拟化叠加的八个用例
  8. MyBatis的一级缓存、二级缓存演示以及讲解,序列化异常的处理
  9. python怎么升级django_线上Django项目python2到3升级日记
  10. linux忘记mysql密码
  11. 使用dva框架的总结
  12. 2022年6月25日PMP考试通关宝典-1
  13. 国内外自动驾驶仿真软件总结
  14. C语言编写贪吃蛇小游戏
  15. 如何查看泛泰A870高通骁龙600(APQ8064T)的CPU体质(A850/A860也可参考)
  16. 计算机硬件系统包括哪几部分组成,计算机硬件系统由哪几部分组成
  17. Stapler#攻略
  18. 植树节|晓一叶之理,种一树美好
  19. JavaScript设计模式有哪些?
  20. 用算法撩妹都不会,别跟我说你是程序员

热门文章

  1. QGC源码分析——航向规划中航点编辑流程(QGroundControl)
  2. 华为鸿蒙系统让国产手机用,鸿蒙系统不支持华为手机 系统还是国产手机的命门...
  3. 数学 {n次方根,根号,平方根}
  4. CSS错误 Do not use empty rulesets
  5. 酷狗导致django8000端口占用
  6. Linux2--修改root密码,文件操作
  7. K3实现按虚拟件/组件发料
  8. CSS盒子边框(border)样式综合样式
  9. PHP网站地图生成类
  10. Android读书笔记(一)