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

我的布局中有一些TextViews 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的项目。


斯蒂芬大帝
浏览 192回答 3
3回答

海绵宝宝撒

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

慕村9548890

有时改变父视图的高度有助于:view.setVisibility(View.GONE);&nbsp;view.setLayoutParams(new RecyclerView.LayoutParams(0, 0));不要忘记恢复行反之亦然:view.setVisibility(View.VISIBLE);view.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));希望能帮助到你。

富国沪深

要添加一些边距来代替该视图,请使视图不可见并根据您的要求设置其宽度。我正在通过 view.GONE 使视图不可见,它不起作用,因为视图不存在,所以要设置什么?。最好的办法就是让它隐形,随心所欲。linearlayout.setVisibility(View.INVISIBLE); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;linearlayout.setLayoutParams(new&nbsp;LinearLayoutCompat.LayoutParams(10,&nbsp;0));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java