ListView的回收机制如何运作
所以我之前遇到过这个问题,我自然就在这里寻求帮助。Luksprog的答案很棒,因为我不知道ListView和GridView如何通过回收视图优化自身。因此,根据他的建议,我能够改变将Grid添加到GridView的方式。问题是现在我有一些没有意义的事情。这是getView
我的BaseAdapter
:
public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null) { LayoutInflater inflater = LayoutInflater.from(parent.getContext()); convertView = inflater.inflate(R.layout.day_view_item, parent, false); } Log.d("DayViewActivity", "Position is: "+position); ((TextView)convertView.findViewById(R.id.day_hour_side)).setText(array[position]); LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.day_event_layout); //layout.addView(new EventFrame(parent.getContext())); TextView create = new TextView(DayViewActivity.this); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 62, getResources().getDisplayMetrics()), 1.0f); params.topMargin = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, getResources().getDisplayMetrics()); params.bottomMargin = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, getResources().getDisplayMetrics()); create.setLayoutParams(params); create.setBackgroundColor(Color.BLUE); create.setText("Test"); } return convertView; }}
问题是当我滚动时,发生这种情况,而不是在位置0 ...看起来像位置6和位置8,再加上它将两个放在位置8.现在我仍然试图使用ListView和GridView,所以我做不明白为什么会这样。我提出这个问题的一个主要原因是帮助那些可能不了解ListView和GridView的回收View的人,或者本文的方式,ScrapView机制。
饮歌长啸
慕妹3146593
守着一只汪