How to get non-visible item view details in GridView

28 views Asked by At

I am working on an Android project. When I try to select images, it’s working fine. However, when I try to delete images and handle the text view, at that time getChildAt() is becoming null; only values coming for if items are visible in FirstVisiblePosition. How can I get for non-visible positions?

SelectImageFragment.this.gridView.getChildAt(index.y) is giving null when I select an image out from view visible.

enter image description here

My code:

           if (id == R.id.imageView_delete) {
                View parent = (View) view.getParent();
                if (parent != null && parent.getParent() != null) {
                    int location = ((ViewGroup) parent.getParent()).indexOfChild(parent);
                    SelectImageFragment.this.footer.removeView(parent);
                    SelectImageFragment.this.deleteAllTv.setText("(" + SelectImageFragment.this.footer.getChildCount() + ")");
                    long imageid = SelectImageFragment.this.selectedImageIdList.remove(location).longValue();
                    SelectImageFragment.this.selectedImageOrientationList.remove(location);
                    Point index = SelectImageFragment.this.findItemById(imageid);
                    if (index != null) {
                        GridViewItem gridViewItem = SelectImageFragment.this.albumList.get(index.x).gridItems.get(index.y);
                        gridViewItem.selectedItemCount--;
                        int value = SelectImageFragment.this.albumList.get(index.x).gridItems.get(index.y).selectedItemCount;
                        if (SelectImageFragment.this.albumList.get(index.x).gridItems == SelectImageFragment.this.adapter.items && SelectImageFragment.this.gridView.getFirstVisiblePosition() <= index.y && index.y <= SelectImageFragment.this.gridView.getLastVisiblePosition() && SelectImageFragment.this.gridView.getChildAt(index.y) != null) {
                            TextView text = (TextView) SelectImageFragment.this.gridView.getChildAt(index.y).findViewById(R.id.textViewSelectedItemCount);
                            text.setText("" + value);
                            if (value <= 0 && text.getVisibility() == View.VISIBLE) {
                                text.setVisibility(View.INVISIBLE);
                            }
                        }
                    }
                }
0

There are 0 answers