我使用GridLayoutManager與recyclerview,當我快向下滾動一個項目出四個明顯的網格項目(右下)移動進一步下降,Recyclerview快速滾動的物品消失
我使用本教程來實現快速滾動和快速滾動指示器here
我使用GridLayoutManager與recyclerview,當我快向下滾動一個項目出四個明顯的網格項目(右下)移動進一步下降,Recyclerview快速滾動的物品消失
我使用本教程來實現快速滾動和快速滾動指示器here
猜猜我找到了解決方案。
看起來像再循環視圖再次附加到窗口,其狀態更改爲不可見(IDK爲什麼)。我們所要做的就是再次使其可見。
幸運的是,RecyclerView.Adapter類有一個方法來處理視圖何時附加或重新附加到RecyclerView。
@Override
public void onViewAttachedToWindow(ViewHolder holder){
super.onViewAttachedToWindow(holder);
if(!holder.tv_1.getText().toString().contentEquals("#EMPTYVIEW"))
holder.root.setVisibility(View.VISIBLE);
Log.i("ATTACHED_VISIBILITY",holder.tv_1.getText().toString()+"\t"+holder.root.getVisibility());
}
我ViewHolder類
class ViewHolder extends RecyclerView.ViewHolder{
TextView tv_1;
TextView tv_2;
ImageView iv;
ImageButton bt;
View root;
ViewHolder(View v){
super(v);
//setIsRecyclable(false); //to prevent views from getting deleted. :-(
tv_1=(TextView)v.findViewById(R.id.aral_tv_title);
tv_2=(TextView)v.findViewById(R.id.aral_tv_stitle);
iv=(ImageView)v.findViewById(R.id.aral_iv);
bt=(ImageButton)v.findViewById(R.id.aral_bt_more);
tv_1.setTypeface(WorkActivity.mainTF);
tv_2.setTypeface(WorkActivity.mainTF);
root=v;
}
}
希望這有助於你出去。
對於每個if
應該有else
。
例如: 如果您有一個觀點是在默認XML文件可見,但你在代碼中改變它的知名度,你必須提供else
否則RecyclerView將重新使用的意見,並會顯示重新使用的視圖與不同的數據。
if(somethingIsTrue) {
view.setVisibility(View.GONE);
} else {
view.setVisibility(View.VISIBLE);
}
您是否找到解決方案?當我飛得很快時,我也有物品消失。 – Gil