Android 2.3: GridView вышел из строя после прокрутки - PullRequest
3 голосов
/ 13 июля 2011

У меня есть GridView, загруженный кучей пользовательских представлений.Когда я прокручиваю вверх или вниз, представления, которые раньше были отключены, теперь заменяются другими представлениями.Есть идеи, почему это происходит?

    public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    LayoutInflater inflater =  (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    RelativeLayout rLayout = (RelativeLayout)inflater.inflate(R.layout.collection_item, parent, false);

    if (convertView == null) {  // if it's not recycled, initialize some attributes    
        ImageView movieImage = (ImageView)rLayout.findViewById(R.id.movieImage);
        TextView movieTitle = (TextView)rLayout.findViewById(R.id.movieTitle);
        TextView movieDescription = (TextView)rLayout.findViewById(R.id.movieDescription);

        movieImage.setImageResource(movies[position]);
        movieTitle.setText(movieNames[position]);
        movieDescription.setText(movieDescriptions[position]);
    } else {
        rLayout = (RelativeLayout) convertView;
    }
    return rLayout;
}

Ответы [ 2 ]

3 голосов
/ 14 июля 2011

Неважно, я понял это.Просто поместите весь код инициализации в часть (convertView == null) и методы установки после блока if / else.

0 голосов
/ 07 сентября 2014

Это может быть из-за загрузки изображения, попробуйте использовать Библиотека Пикассо

Решение вместо того, чтобы использовать растровое изображение для загрузки изображения, напрямую использовать потрясающую библиотеку под названием Picasso, это просто супер быстро, я знаю, что вам действительно нравится это, вы можете сделать это следующим образом

Добавить файл фляги Пикассо в ваш проект (Скачать файл фляги Пикассо здесь) Используйте Picasso, чтобы загрузить изображение, как это

Picasso.with(context).load(new File(title)).centerCrop()
        .resize(150, 150).error(R.drawable.ic_launcher).into(image);  

где title - путь к изображению, которое вы хотите загрузить. Обрезка, изменение размера, ошибка не обязательны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...