根据我从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
的项目。
答案 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));
希望有帮助。