我的布局中有一些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的項目。
3 回答

慕村9548890
TA貢獻1884條經驗 獲得超4個贊
有時改變父視圖的高度有助于:
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));
希望能幫助到你。

富國滬深
TA貢獻1790條經驗 獲得超9個贊
要添加一些邊距來代替該視圖,請使視圖不可見并根據您的要求設置其寬度。我正在通過 view.GONE 使視圖不可見,它不起作用,因為視圖不存在,所以要設置什么?。最好的辦法就是讓它隱形,隨心所欲。
linearlayout.setVisibility(View.INVISIBLE); linearlayout.setLayoutParams(new LinearLayoutCompat.LayoutParams(10, 0));
添加回答
舉報
0/150
提交
取消