Android-隐藏/删除边距以及隐藏RecyclerView的项目

时间:2019-06-29 06:29:41

标签: java android android-recyclerview

根据我从TextView数据库获得的数据,我在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 个答案:

答案 0 :(得分:1)

您可以从用于在recyclerview中加载数据的列表中删除该元素。如果无法使用,请尝试此操作。能否请您分享完整的代码。

答案 1 :(得分:1)

有时更改父视图的高度有帮助:

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));

希望有帮助。

相关问题