如何在 React Native 中禁用图像淡入淡出效果?
How to disable image fade in effect in React Native?
情况
- 动态切换图像
- React Native
- 开发模式
- Android
问题
- 图像在开发模式下出现时淡入。这是一个问题,因为我正在开发和调整具有实际淡入效果的图像动画。是否可以禁用淡入淡出效果?
尝试次数
- 切换到释放模式。有效但在开发过程中不合适。
- 正在最小化图像文件大小。无明显差异。
- 正在最小化图像显示大小。没有明显的区别。
我设法通过用自定义 ViewGroupManager
包装我的 <Image />
并在将图像添加到自定义 [=15] 之前通过反射将 ReactImageView.mFadeDuration
设置为零来防止淡入淡出动画=].
编辑: 但这会在显示图像时增加明显的延迟:( 实际上没有延迟。
像这样:
public class NoFadeImageWrapper extends ViewGroup {
public NoFadeImageWrapper(Context context) {
super(context);
}
@Override
public void onViewAdded(View child) {
if (child instanceof ReactImageView) {
((ReactImageView) child).setFadeDuration(0);
ReflectionUtils.setField(child, "mIsDirty", true);
}
super.onViewAdded(child);
}
}
ReflectionUtils.setField
实施:
public class ReflectionUtils {
public static void setField(Object obj, String name, Object value) {
try {
Field field = getField(obj.getClass(), name);
if (field == null) {
return;
}
field.setAccessible(true);
field.set(obj, value);
} catch (Exception e) {
e.printStackTrace();
}
}
}
只需将 fadeDuration={0}
设置为 Image
组件,这没有记录
您可以查看here了解更多信息
情况
- 动态切换图像
- React Native
- 开发模式
- Android
问题
- 图像在开发模式下出现时淡入。这是一个问题,因为我正在开发和调整具有实际淡入效果的图像动画。是否可以禁用淡入淡出效果?
尝试次数
- 切换到释放模式。有效但在开发过程中不合适。
- 正在最小化图像文件大小。无明显差异。
- 正在最小化图像显示大小。没有明显的区别。
我设法通过用自定义 ViewGroupManager
包装我的 <Image />
并在将图像添加到自定义 [=15] 之前通过反射将 ReactImageView.mFadeDuration
设置为零来防止淡入淡出动画=].
编辑: 但这会在显示图像时增加明显的延迟:( 实际上没有延迟。
像这样:
public class NoFadeImageWrapper extends ViewGroup {
public NoFadeImageWrapper(Context context) {
super(context);
}
@Override
public void onViewAdded(View child) {
if (child instanceof ReactImageView) {
((ReactImageView) child).setFadeDuration(0);
ReflectionUtils.setField(child, "mIsDirty", true);
}
super.onViewAdded(child);
}
}
ReflectionUtils.setField
实施:
public class ReflectionUtils {
public static void setField(Object obj, String name, Object value) {
try {
Field field = getField(obj.getClass(), name);
if (field == null) {
return;
}
field.setAccessible(true);
field.set(obj, value);
} catch (Exception e) {
e.printStackTrace();
}
}
}
只需将 fadeDuration={0}
设置为 Image
组件,这没有记录
您可以查看here了解更多信息