Тож у мене ця проблема була в мене раніше, і я, природно, попросив допомоги тут . Відповідь Luksprog була чудовою, тому що я не мав уявлення про те, як ListView та GridView оптимізували себе за допомогою переробки Views. Тож за його порадою я зміг змінити те, як я додав погляди до свого 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");
//the following is my original LinearLayout.LayoutParams for correctly setting the TextView Height
//new LinearLayout.LayoutParams(0, (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 60, getResources().getDisplayMetrics()), 1.0f)
if(position == 0) {
Log.d("DayViewActivity", "This should only be running when position is 0. The position is: "+position);
layout.addView(create);
}
return convertView;
}
}
Проблема полягає в тому, що коли я прокручую, це трапляється, а не на позиції 0 ... Схоже, що позиція 6 і позиція 8, плюс вона ставить два в позицію 8. Тепер я все ще намагаюся отримати вивірку використання ListView і GridView, так що я це роблю не розумію, чому це відбувається. Однією з головних причин, з якою я задаю це питання, є допомога іншим, хто, ймовірно, не знає про ListView та GridView щодо переробки перегляду, або про те, як ця стаття ставить це, ScrapView.

Пізніше Редагувати
Додавання посилання в розмову в Google IO, це в основному все, що вам потрібно, щоб зрозуміти, як працює ListView. Посилання на коментарі померло. Тож користувачеві3427079 було досить приємно оновити це посилання. Ось це для легкого доступу.
0).
ListViewпотрібен новий рядок для показу (наприклад, продовження прокрутки вниз / вгору). Проблема полягає в тому, що погляд, який щойно зник і який буде використовуватися на майбутніх необхідних посадах, TextViewвже додав до цього, в цьому і полягає проблема. Щоб вирішити його, вам потрібно видалити його в getViewметоді, якщо getViewметод викликається в будь-якій іншій позиції, ніж 0.
