如何在React Native中禁用图像淡入效果?

时间:2016-11-04 10:15:01

标签: reactjs react-native react-native-android

场合

  • 动态切换图像
  • React Native
  • 开发模式
  • Android

问题

  • 在开发模式下出现时,图像会淡入。这是一个问题,因为我正在开发和调整具有实际淡入效果的图像动画。是否可以禁用淡入效果?

尝试

  • 切换到释放模式。在开发过程中工作但不合适。
  • 最小化图像文件大小。没有明显的区别。
  • 最小化图像显示尺寸。没有明显的区别。

2 个答案:

答案 0 :(得分:29)

只需将function checkcode(){ switch (code) { case "superfoods": $("#superfoods").show(); break; case "fakemedia": $("#fakemedia").show(); break; case "dropbear": $("#dropbear").show(); break; default: alert( code + "is not a valid imput."); } } 设置为fadeDuration={0}组件,就不会记录

您可以查看here了解详情

答案 1 :(得分:0)

在将图片添加到自定义<Image />之前,我设法通过将自己的ViewGroupManager与自定义ReactImageView.mFadeDuration打包并将ViewGroup设置为零来防止淡入淡出动画。 编辑: 但是这会在显示图片时添加明显的延迟:(实际上没有延迟。

这样的事情:

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();
        }
    }
}