У меня есть список, и у каждого элемента есть заголовок, информация и пара ImageViews, которые я использую в качестве кнопок редактирования/удаления. Я не хочу показывать эти «кнопки», если пользователь не выбирает строку. Я могу сделать «кнопки» невидимыми, используя:Android - Сделать ImageView видимым, когда выбрано ListItem
DeleteButton.setVisibility(View.INVISIBLE);
EditButton.setVisibility(View.INVISIBLE);
в моем BindView.
я могу сделать кнопки видимыми в onListItemClick:
ImageView DeleteButton = (ImageView) v.findViewById(R.id.button_delete);
ImageView EditButton = (ImageView) v.findViewById(R.id.button_edit);
DeleteButton.setVisibility(View.VISIBLE);
EditButton.setVisibility(View.VISIBLE);
То, что я не могу сделать, это «кнопку» невидимой при выборе другого элемента или прокрутке прочь.
Ближайший я нашел, чтобы сделать петлю через ListItems в текущем виде и установить их все, прежде чем сделать невидимым выбранный один видимый:
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
\\loop through all the items and set them back to invisible
for (int i=0;i<=l.getLastVisiblePosition();i++){
View vChild = l.getChildAt(i);
ImageView DeleteButton = (ImageView) vChild.findViewById(R.id.button_delete);
ImageView EditButton = (ImageView) vChild.findViewById(R.id.button_edit);
DeleteButton.setVisibility(View.INVISIBLE);
EditButton.setVisibility(View.INVISIBLE);
}
\\set the selected one visible
ImageView DeleteButton = (ImageView) v.findViewById(R.id.button_delete);
ImageView EditButton = (ImageView) v.findViewById(R.id.button_edit);
DeleteButton.setVisibility(View.VISIBLE);
EditButton.setVisibility(View.VISIBLE);
}
Как вы можете догадаться ... это только подход работает, если у вас есть несколько элементов.
Я думал о добавлении поля в базу данных SQLite, которую мой список использует, чтобы отслеживать видимость кнопки (аналогично тому, что вы делаете для флажков), но это казалось глупым. Скажи, пожалуйста, есть другой способ.
Спасибо, это идея, в которой я нуждался. Я думал о попытке отслеживать последнюю нажатую строку, но я не был уверен, что делать, когда эта строка прокручивается. Я не понимал, что привязка зрения может позаботиться об этом. – Jeff