【发布时间】:2019-07-23 21:30:31
【问题描述】:
我有一个recyclerView 和 5 个cardView。每个cardview 中有三个按钮。
此按钮之一不可见,并且当 GPS 数据更改时,仅在一个 cardview 中可见。
我的问题是我做不到。
我尝试了一些方法。一个是:
public void onLocationChanged(Location currentLocation) {
double latitude = currentLocation.getLatitude();
double longitude = currentLocation.getLongitude();
float[] results = new float[1];
for (int i = 1; i < list_count; i++) {
Location.distanceBetween(oldLat[i], oldLng[i],
latitude, longitude, results);
if (results[0] < 30) {
visible[i] = true;
} else {
visible[i] = false;
}
adapter.notifyItemChanged(i);
// adapter.notifyDataSetChanged();
}
}
另一种方式是:
public void onBindViewHolder(@NonNull final CustomAdapter.MyViewHolder holder, final int listPosition) {
final Button buttonPresent = holder.buttonPresent;
final Button buttonAbsent = holder.buttonAbsent;
final Button buttonGeo = holder.buttonGeo;
if (listPosition > -1) {
if (visible[listPosition]) {
buttonGeo.setVisibility(View.GONE);
} else {
buttonGeo.setVisibility(View.INVISIBLE);
}
}
adapter.notifyItemChanged(i);
// adapter.notifyDataSetChanged();
}
}
recyclerView 中所有 buttonGeo 的默认状态为 INVISIBLE。当到达一个位置时,与其相关的按钮必须仅对一个 cardView 可见。 但我无法更改按钮可见性和所有按钮不可见。我该如何解决这个问题?请原谅我的英语。
【问题讨论】:
标签: android button android-recyclerview android-cardview