У меня есть настраиваемый gridView с макетом элементов, состоящим из imageView и textView с фоном. TextView работает как селектор , так как я не хочу использовать его по умолчанию.Android gridview как отменить выбор элемента, который находится за пределами текущего вида (в настоящее время видимые элементы)
Этот сценарий работает нормально, пока все элементы gridView подходят на экране. Но для случая прокручиваемого gridView: если я выберу элемент, а затем выберите другой после прокрутки вниз, выбранный элемент сначала не будет отменен, так как он не был частью представления.
Вот код Селектор, используемый в моей MainActivity:
final int size = gridView.getChildCount();
for(int i = 0; i < size; i++)
{
if(i == position && gridView.getChildAt(i) instanceof TextView)
gridView.getChildAt(i).setVisibility(View.VISIBLE);
else
gridView.getChildAt(i).setVisibility(View.INVISIBLE);
}
Я хочу знать, как сделать TextView (мой селектор для GridView) INVISIBLE, когда он находится вне поля зрения.
Спасибо, ребята
Пробовал ваше предложение, не уверен, что я сделал это правильно. Не могли бы вы мне помочь? «убедитесь, что каждый из них отменен перед выбором другого». Невозможно отменить выбор за пределами представления – OrangePeel
ArrayList textViews = new ArrayList (); TextView a = новый TextView (контекст); GridLayout.add (a); textViews.add (a); , а затем, когда вы хотите выбрать что-то новое: для (TextView t: textViews) { t.setVisible (View.INVISIBLE); } , а затем, наконец, установите вид, который хотите видеть. –
Предполагается, что текстовые просмотры представляют собой виды, которые вы хотите установить видимыми. Переключите textView для любого объекта, который он на самом деле. –