android 绑定布局,android – 在数据绑定中设置动态布局高度
我想在数据绑定结构中设置动态布局高度.
我试了一下,但我得到了这个例外:
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 – 在数据绑定中设置动态布局高度相关推荐
- (android控件)ListView的Item中设置按钮实现
前言 在项目的开发过程中,需要Listview的Item中包含按钮的效果.在实际开发过,Item中放置按钮后,ListView 单行选择背景颜色变化的效果没有了. 问题原因 ListView 和 其它 ...
- excel一列求和_在excel中设置动态求和其实很简单,三个函数即可轻松搞定
Hello,大家好,今天跟大家分享下我们如何在excel中设置动态求和的效果,如下图,当我们更改姓名和月份的时候会根据我们选择的数据自动求和,比如:我们将名字设置为刘备,截止月份设置为12月,就会对刘 ...
- 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
在进行UI布局的时候,可能常常会用到 android:gravity 和 android:layout_Gravity 这两个属性. 关于这两个属性的差别,网上已经有许多人进行了说明,这边再简单说一 ...
- android java style_Android 在Java代码中设置style属性--使用代码创建ProgressBar对象
强烈推荐: 在andriod开发中,很大一部分都要与资源打交道,比如说:图片,布局文件,字符串,样式等等.这给我们想要开发一些公共的组件带来很大的困难,因为公共的组件可能更愿意以jar包的形式出现.但 ...
- android 百分比布局操作sp,constraintlayout中的百分比布局
constraintlayout布局中为我们提供了,两种百分布局可以帮助我们去适配界面 第一种 layout_constraintVertical_bias 该属性代表的意思是垂直距离的百分比,默认0 ...
- android 设置按钮高度,如何在本机android中设置按钮的高度
我正在学习反应 Android移动应用程序的本机编程.我正在制作一个我需要设置按钮高度的屏幕.我在视图中添加了按钮并设置了使用样式的高度,但按钮高度没有变化. /** * LoginComponent ...
- kodi remote android,使用Android和iOS在Win10系统中设置Kodi Remote方法
Kodi是一个流行的流媒体应用程序,兼容windows操作系统和大多数其他设备,如Android,iOS,Linux等.Kodi是家庭娱乐的理想选择,基本上设计用于大屏幕.如果要在windows桌面上 ...
- android textview 绝对位置,android – 在运行时在RemoteView中设置TextView的位置
亲爱的,我试图在appwidget中设置TextView的位置. 基本上,TextView可以直接访问属性: myRemoteView.setTextColor(R.id.myTextView,Col ...
- android textview layoutparams,从LayoutParams说起到代码动态布局
本文说两点 1.介绍LayoutParams并且简单代码实现xml布局效果 2.代码动态控制RelativeLayout子控件的布局变化 一.LayoutParams LayoutParams 如果直 ...
最新文章
- php中的parse_ini_file函数
- java 共享内存获取写权限_跨进程访问共享内存的权限问题
- verilog中b',d',h'的意思
- 社工库网址与制作方法
- 在C ++中检查一个数组是否是另一个数组的子数组
- 该内存不能为read
- 网络虚拟化叠加的八个用例
- MyBatis的一级缓存、二级缓存演示以及讲解,序列化异常的处理
- python怎么升级django_线上Django项目python2到3升级日记
- linux忘记mysql密码
- 使用dva框架的总结
- 2022年6月25日PMP考试通关宝典-1
- 国内外自动驾驶仿真软件总结
- C语言编写贪吃蛇小游戏
- 如何查看泛泰A870高通骁龙600(APQ8064T)的CPU体质(A850/A860也可参考)
- 计算机硬件系统包括哪几部分组成,计算机硬件系统由哪几部分组成
- Stapler#攻略
- 植树节|晓一叶之理,种一树美好
- JavaScript设计模式有哪些?
- 用算法撩妹都不会,别跟我说你是程序员