3

プロフィール・ピクチャでナビゲーション・ドロワー付きの4つのフラグメントを持っているアンドロイド・アプリがありますが、プロファイル・フラグメントの編集/プロファイルフラグメントはこのフラグメントで更新されていて、共有プリファレンス(サーバーにアップロードすることもできます)にpic URLを保存していますが、ホームフラグメントに戻ると、ナビゲーションドロワーのプロファイル画像が最新の画像で更新されません。私はGlideライブラリを使用しています。プロフィール画像を読み込むために、この画像は共有設定に保存されているURLを読み込んでいます。しかし、私は私のアプリケーションを閉じて、最新の写真を撮ったナビゲーションドロワーのアップデートでプロフィール画像を開きます。ユーザーにプロフィールを編集してプロファイルを変更するたびにアプリを終了して開くように求めることはできません。この問題を解決する方法はありますか?画像がEdit Profile Fragmentから変更されたときにナビゲーション・ドロワーのプロフィール画像を更新する

//getting image URL from Shared Preferences. 
     imgUrl = Prefrences.getProfile_picture(HomeActivity.this); 
     loadImageUrl(imgUrl); 

//loading image in navigation drawer with glide in Main Activity 
private void loadImageUrl(String imgUrl) { 
    if (imgUrl != null && !imgUrl.isEmpty()) { 
     Glide.with(this).load(imgUrl).placeholder(R.drawable.avatar) 
       .crossFade() 
       .thumbnail(0.5f) 
       .bitmapTransform(new CircleTransform(this)) 
       .diskCacheStrategy(DiskCacheStrategy.ALL) 
       .into(img_profile); 
    } else { 
     getUserDetails(); <-- this method is called when imgUrl is Null, 
    } 

} 
+0

'EditProfileFragment'には引き出しがありますか? –

+0

いいえ、それは引き出しを持っていません、それは写真を表示/変更するための画像表示のみを持ち、名前、電話番号などのための少数の編集テキストフィールドを持っています。 –

答えて

0

あなたの画像はGlideによってキャッシュされている可能性があります。

ここ Remove image from cache in Glide library

+0

上記の答えを試しましたが、 –

+0

どのコールバックで画像を取得していますか? onCreate? –

+0

メインアクティビティでは、onCreate()メソッドで画像を取得しています。 –

0

あなたは

は、一部のデータバインディングを分離し、また、このような呼び出し....あなたはナビゲーションのアクティビティを作成するときにデータを更新するには、ナビゲーションビューを呼び出すことができ、トップ2の答えをチェックfromCreate()

private void updateNavHeaderView(){ 
View headerView = navigationView.inflateHeaderView(R.layout.nav_header); 
     ImageView ivUserProfilePhoto = (ImageView) headerView.findViewById(R.id.ivUserProfilePhoto); 
     TextView userName = (TextView) headerView.findViewById(R.id.userName); 

     if (user != null && user.getUser_image() != null && !user.getUser_image().equals("")) { 
      Picasso.with(MainActivity.this) 
        .load(Config.BASE_IMAGE_URL+"/"+user.getUser_image()) 
        .placeholder(R.drawable.user_profile) 
        .resize(avatarSize, avatarSize) 
        .centerCrop() 
        .transform(new CircleTransformation()) 
        .into(ivUserProfilePhoto); 
     } else { 
      ivUserProfilePhoto.setImageDrawable(getResources().getDrawable(R.drawable.user_profile)); 
     } 
     } 
+0

ありがとう、これを試してみてください –

関連する問題