当用户信息来自 rx 中的 BehaviorSubject 时,Glide 不显示用户图像

Glide does not show user image when user information comes from BehaviorSubject in rx

我有登录 activity 用户输入用户名和 password.after 用户登录,客户端接收并存储在领域 database.In mainActivity 中的所有用户信息这些信息被读取并被滑行图像用户显示在 ImageView.User 图像是字节 array:I 我正在使用 MVP 设计模式:

private void loadProfileUserImage() {
        RequestOptions requestOptions = new RequestOptions();
        requestOptions.placeholder(R.drawable.shadow);
        requestOptions.circleCropTransform();
        requestOptions.transforms(new CenterCrop(), new RoundedCorners(300));
        Glide.with(view.getContext())
                .load(userInfo.getUserImage())
                .apply(requestOptions)
                .into(view.getProfilePic());
    }

一切正常,图像用户显示在 imageView.IN mainActivity 我有一张卡 view.when 用户点击我的卡,所有用户信息都通过 rx 和 intent.I 发送到 UserInfoActivity我正在使用 BehaviorSubject 发送用户信息:

view.getCard1().setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        RxBus.getSubject().onNext(userInfo);
        activity.startActivity(new Intent(activity,UserInfoActivity.class));
    }
});

UserInfoPresenter 我想显示所有用户信息 user.I 在 UserInfo 布局中创建了图像视图:

<ImageView
    android:id="@+id/iv_user_profile"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_gravity="center"
    android:layout_marginTop="32dp"
    android:scaleType="centerCrop" />

在 UserInfopresenter 中,我通过 getSubject 获取用户信息,最后我想通过 glid.But 显示用户图像 没有任何反应,glid 未显示用户图像:userInfo 声明为字段。

userInfo = new User();
compositeDisposable.add(
        MainPresenter.RxBus.getSubject()
        .subscribeWith(new DisposableObserver<User>() {
            @Override
            public void onNext(User o) {
                userInfo = o;
                loadProfileUserImage();
            }...

和 loadProfile 方法:

private void loadProfileUserImage() {
    RequestOptions requestOptions = new RequestOptions();
    requestOptions.placeholder(R.drawable.shadow);
    requestOptions.circleCropTransform();
    requestOptions.transforms(new CenterCrop(), new RoundedCorners(300));
    Glide.with(view.getContext())
            .load(userInfo.getUserImage())
            .apply(requestOptions)
            .into(view.getProfilePic());
}

我没有收到任何错误,甚至 placeholder drawable 也没有显示在 imageView 中!!!就像 glid 不存在并且它没有 work.I 为调试设置刹车点以确保在这部分接收正确的 User object:

@Override
public void onNext(User o) {
      userInfo = o;
      loadProfileUserImage();
}

并且用户已完全接收,我可以在调试模式下看到用户图像字节数组。

发生了什么事,你有什么想法?

*****************编辑** *******************

调试模式图像:

我终于找到了,我的问题在哪里。 我正在使用匕首来注入依赖项,并且我在它的构造函数中注入了 UserInfoView:

@Inject
public UserInfoView(Activity activity) {
    super(activity);
    this.activity = activity;

似乎以这种方式右视图没有注入到演示者中class因为我已经通过它的构造函数注入了演示者:

@Inject
public UserInfoPresenter(UserInfoView view, Activity activity) {
    this.view = view;
    this.activity = activity;
}

当我将 UserInfoView 放入我的模块时:

@Provides
@UserInfoScope
public UserInfoView view() {
    return new UserInfoView(activity);
}

和 运行 应用程序,显示用户图像配置文件并滑动正常工作。