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

5lwkijsr  于 2022-12-28  发布在  Android
关注(0)|答案(3)|浏览(141)

我在我的RecyclerView布局中有一些TextView,基于我从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的物品。

brccelvz

brccelvz1#

你可以从列表中删除你用来在recyclerview中加载数据的元素。如果它不起作用,试试这个。你能分享你的完整代码吗?

30byixjq

30byixjq2#

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

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

希望有帮助。

pgky5nke

pgky5nke3#

要添加一些边距的地方,该视图使不可见,并设置其宽度根据您的要求。我是使视图不可见的看法。去了,它不工作,因为该看法是不存在的,所以设置什么?。最好的方法是使它不可见,并做任何你想要的。

linearlayout.setVisibility(View.INVISIBLE);
                    linearlayout.setLayoutParams(new LinearLayoutCompat.LayoutParams(10, 0));

相关问题