这与'animateLayoutChanges以编程方式'不重复。
我想要我的视图上的默认动画效果会从删除对象的淡出效果更改除之外。我无法使用disableTransitionType()
,因为它已在API 16中添加。我只能想到禁用android:animateLayoutChanges
到false
,删除视图并将其重新设置为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);
}
我怎样才能做到这一点?
答案 0 :(得分:1)
在您的情况下,您可以让holder
或root_view
为空,但由于之前已成功访问持有者,因此root_view
为空。
因此,您很可能之前没有指定holder.root_view
。