Android - Скрыть / Удалить поля вместе со скрытыми элементами RecyclerView - PullRequest
2 голосов
/ 29 июня 2019

У меня есть TextView s в моем RecyclerView макете, основываясь на данных, которые я получаю из базы Firebase, я скрываю некоторые строки, используя приведенный ниже код,

public void Date(String d){


        dataRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                LatLonConstructor data = dataSnapshot.getValue(LatLonConstructor.class);

                LatLong = data.getLatLon();

                String SplitOldLatlon[] = LatLong.split(" ");

                Double OldLat = Double.parseDouble(SplitOldLatlon[0]);
                Double OldLon = Double.parseDouble(SplitOldLatlon[1]);

                String LatLon1 = location.getText().toString().trim();
                String SplitNewLatlon[] = LatLon1.split(" ");

                Double NewLat = Double.parseDouble(SplitNewLatlon[0]);
                Double NewLon = Double.parseDouble(SplitNewLatlon[1]);

                double Theta = NewLon - OldLon;
                double dist = Math.sin(deg2rad(NewLat))
                        * Math.sin(deg2rad(OldLat))
                        + Math.cos(deg2rad(NewLat))
                        * Math.cos(deg2rad(OldLat))
                        * Math.cos(deg2rad(Theta));

                dist = Math.acos(dist);
                dist = rad2deg(dist);
                dist = dist * 60 * 1.1515;

                String FinalDist = String.valueOf(dist);
                body.setText(FinalDist);

                dist = dist * 1.609;

                if (dist < 1){

                    int pos = getAdapterPosition();

                    view.setVisibility(View.GONE);
                    view.setLayoutParams(new RecyclerView.LayoutParams(0,0));

                    progressDialog.dismiss();
                } else {
                    progressDialog.dismiss();
                }

            }

Теперь проблема в том, что он скрывает вид, но там, где элемент был спрятан, остается пустое место.

Я хотел бы знать, как правильно скрыть элемент RecyclerView.

Ответы [ 2 ]

1 голос
/ 29 июня 2019

Иногда помогает изменение высоты родительского вида:

view.setVisibility(View.GONE); 
view.setLayoutParams(new RecyclerView.LayoutParams(0, 0));

Не забудьте восстановить строку наоборот:

view.setVisibility(View.VISIBLE);
view.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

Надеюсь, это поможет.

1 голос
/ 29 июня 2019

Вы можете удалить этот элемент из списка, который вы используете для загрузки данных в представлении реселлера.Попробуйте, если это не работает, пожалуйста, поделитесь полным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...