Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
zs_ftp
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 2
#1

GridView - как не обновлять ячейки, которые не видны в данный момент - Программирование Android

06.06.2012, 13:44. Просмотров 985. Ответов 2
Метки нет (Все метки)

Есть длинный GridView. В нем отображаем 2 изображения + текст.
Каждый элемент GridView:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <ImageView
        android:id="@+id/ivAvatar"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:scaleType="fitXY"
        android:src="@android:drawable/btn_default" />
 
    <TextView
        android:id="@+id/tvUsername"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:text="Username"
        android:textSize="10dp"
        android:textColor="#000000" />
 
    <ImageView
        android:id="@+id/ivOnline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="77dp"
        android:paddingTop="1dp"
        android:src="@android:drawable/presence_online" />
 
    <TextView
        android:id="@+id/tvDistance"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingTop="80dp"
        android:textColor="#FF0000"
        android:textSize="8dp"
        android:text="0m" />
</FrameLayout>
Если мы листаем вниз, а потом сразу вверх, то вверху R.id.ivOnline может исчезнуть, а может появиться.
Как с этим бороться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2012, 13:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос GridView - как не обновлять ячейки, которые не видны в данный момент (Программирование Android):

Как программно определить все доступные в данный момент точки доступа WiFi?
Как программно определить все доступные в данный момент точки доступа WiFi?? И...

Получить rel у Div-ов которые в данный момент видны
Здравствуйте. Друзья, нужна ваша помощь. Ситуация в следующем: ...

Как через IdFTP узнать количество юзеров, которые в данный момент подключены к хосту?
Проблема такая - есть несколько FTP клиентов, каждому из которых нужно...

Хочется узнать все процессы, которые в данный момент используют директорию
хочется узнать все процессы которые в данный момент используют директорию,...

Extern: Есть ли на данный момент набор инструментов, которые позволили бы использовать другие языки
Всем доброго времени суток. Часто встречаю использование оператора (если это,...

Как выборочно обновлять ячейки таблицы html
есть таблица. необходимо некоторые ячейки оставлять без обновления. как сделать...

2
flashok
87 / 89 / 1
Регистрация: 14.02.2009
Сообщений: 293
06.06.2012, 13:47 #2
как бы не похабно это звучало, но покажите ваш адаптер
0
zs_ftp
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 2
06.06.2012, 14:17 #3
Цитата Сообщение от flashok Посмотреть сообщение
как бы не похабно это звучало, но покажите ваш адаптер
Я медленно достаю свой адаптер :dance3:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import java.util.ArrayList;
 
import ru.ikrasivo.usersadapter.R;
import ru.ikrasivo.usersadapter.models.User;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
 
import com.androidquery.AQuery;
 
public class UsersAdapter extends BaseAdapter {
 
    private Context mContext;
    private ArrayList<User> users = new ArrayList<User>();
    private LayoutInflater mLayoutInflater;
 
    public UsersAdapter(Context context, ArrayList<User> list) {
        mContext = context;
        mLayoutInflater = LayoutInflater.from(mContext);
        this.users = list;
    }
    
    @Override
    public int getCount() {
        return users.size();
    }
 
    @Override
    public Object getItem(int position) {
        return users.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        AQuery aq = new AQuery(convertView);
 
        if (convertView == null) {
            convertView = mLayoutInflater.inflate(R.layout.item, null);
            holder = new ViewHolder();
            holder.avatar = (ImageView) convertView.findViewById(R.id.ivAvatar);
            holder.name = (TextView) convertView.findViewById(R.id.tvUsername);
            holder.distance = (TextView) convertView.findViewById(R.id.tvDistance);
            holder.online = (ImageView) convertView.findViewById(R.id.ivOnline);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
 
        aq.id(holder.avatar).image(users.get(position).avatar,  true, true, 0, 0, null, 0, 1.0f / 1.0f);
        holder.name.setText(users.get(position).name);
        holder.distance.setText(users.get(position).distance.toString() + " метров");
        if (users.get(position).online == 0) {
            holder.online.setVisibility(View.INVISIBLE);
        }
        return convertView;
    }
 
    static class ViewHolder {
        ImageView avatar;
        ImageView online;
        TextView name;
        TextView distance;
    }
 
}
Добавлено через 26 минут
Победил:

В адаптере строка 64:

Java
1
2
3
4
5
if (users.get(position).online == 0) {
    holder.online.setVisibility(View.INVISIBLE);
} else {
    holder.online.setVisibility(View.VISIBLE);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 14:17
Привет! Вот еще темы с решениями:

Как узнать онлайн ли юзер в данный момент?
подскажите кто знает, как ето можно организовать. Точнее проверить на сайте ли...

Как настроить время ? показывает- 10:49:37 а данный момент 23:50
&lt;?php $dat = date(&quot;d.m.y&quot;); //Дата $tm = date(&quot;h:i:s&quot;); // Время echo...

Как определить, заряжается ли в данный момент аккумулятор
Литий. Как stm32 должна понять, что сейчас идёт зарядка(надо этот момент...

Как определить, сколько в данный момент пользователей?
проблема така: мне нужно узнать сколько пользователей находится в данный момент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru