这与“以编程方式进行 animateLayoutChanges”不重复。
我想要 View 上的默认动画效果发生变化除了删除对象时的淡出效果。我无法使用 disableTransitionType()
,因为它是在 API 16 中添加的。我所能想到的就是将 android:animateLayoutChanges
禁用为 false
,删除 View 并将其再次设置为 true
。在我的recyclerView
中,我想通过holder.rootView.setLayoutTansition(null)
删除动画。但不幸的是它给了我NullPointerException
。
我的代码的一部分是这样的:
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
SavedMessagePackage current = data.get(position);
final String message = current.message;
holder.message.setText(message);
holder.message.setMaxLines(2);
holder.message.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (holder.button.getVisibility() == View.GONE) {
holder.button.setVisibility(View.VISIBLE);
holder.message.setMaxLines(Integer.MAX_VALUE);
holder.message.setText(message);
}
else if (holder.button.getVisibility() == View.VISIBLE) {
holder.root_view.setLayoutTransition(null); // NullPointerException
holder.button.setVisibility(View.GONE);
holder.message.setMaxLines(2);
holder.root_view.setLayoutTransition(new LayoutTransition());
}
}
});
holder.button.setVisibility(View.GONE);
}
我怎样才能实现这个目标?
最佳答案
在您的情况下,您的 holder
或 root_view
可能为 null,但由于之前已成功访问holder,因此 root_view
为 null。
因此,您很可能之前没有分配 holder.root_view
。
关于java - Android:animateLayoutChanges(false) 以编程方式给出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37371419/