gpt4 book ai didi

java - Android:animateLayoutChanges(false) 以编程方式给出 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 09:54:10 36 4
gpt4 key购买 nike

这与“以编程方式进行 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);
}

我怎样才能实现这个目标?

最佳答案

在您的情况下,您的 holderroot_view 可能为 null,但由于之前已成功访问holder,因此 root_view 为 null。

因此,您很可能之前没有分配 holder.root_view

关于java - Android:animateLayoutChanges(false) 以编程方式给出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37371419/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com