导航抽屉/片段更新

时间:2019-07-24 01:11:50

标签: android android-fragments navigation-drawer

我有一个导航抽屉设置。我在抽屉上的片段之一允许用户上传图像,然后显示图像。图像上载并显示正常,但如果用户离开片段并返回图像,则视图将不加载任何内容,甚至不显示占位符图像,而是显示为空白。相同的图像也显示在导航抽屉中,但是直到用户离开应用程序并返回占位符图像后才会更新。

个人资料片段

        mUsersDB.get()
            .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                @Override
                public void onSuccess(DocumentSnapshot documentSnapshot) {
                    if (documentSnapshot.exists()) {

                        String name = documentSnapshot.getString(KEY_NAME);
                        mName.setText(name);

                        String status = documentSnapshot.getString(KEY_STATUS);
                        mStatus.setText(status);

                        String image = documentSnapshot.getString(KEY_IMAGE);

                        if (mDisplayImage.getDrawable() == null){

                            mDisplayImage.setImageResource(R.drawable.default_no_profile_picture);


                        } else {

                            Glide.with(getActivity()).load(image).into(mDisplayImage);
                        }


                        FirebaseUser currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();


                    } else {

                    }

                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {

                }
            });

导航抽屉:

        mUsersDB.get()
            .addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                @Override
                public void onSuccess(DocumentSnapshot documentSnapshot) {
                    if (documentSnapshot.exists()) {

                        String name = documentSnapshot.getString(KEY_NAME);

                        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
                        View headerView = navigationView.getHeaderView(0);
                        TextView navUsername = (TextView) headerView.findViewById(R.id.menu_userName);
                        navUsername.setText(name);

                        String image = documentSnapshot.getString(KEY_IMAGE);

                        ImageView navImage = headerView.findViewById(R.id.menu_image);
                        Glide.with(getApplicationContext())
                                .load(image)
                                .into(navImage);

我在网上发现他们正在谈论分离和重新连接监听器,但是我没有监听器设置,所以我不明白我将如何实现它,我也发现使用.setdrawerlistner,但是已经弃用了。在此失去任何帮助,将不胜感激

1 个答案:

答案 0 :(得分:0)

我使用错误的方式,我只是简单地使用了带占位符的占位符,并使用了请求选项

                            RequestOptions options = new RequestOptions()
                                .placeholder(R.drawable.no_profile_picture)
                                .error(R.drawable.no_profile_picture)
                                .diskCacheStrategy(DiskCacheStrategy.ALL)
                                .priority(Priority.HIGH);

                        ImageView navImage = headerView.findViewById(R.id.menu_image);
                        Glide.with(getApplicationContext())
                                .load(image)
                                .apply(options)
                                .into(navImage);