Динамически удалять представление из виджета StackView

Не удалось найти успешный способ удалить представление из виджета StackView. Я работаю над базовым примером StackView, который поставляется с SDK.

Вот что я пытаюсь сделать в функции getViewAt(int position) для определенного представления, которое я не хочу отображать в виджете в определенной ситуации:

rv.removeAllViews(R.id.widget_item);
mWidgetItems.remove(position);
mCount = mCount -1;
AppWidgetManager awm = AppWidgetManager.getInstance(mContext);   
awm.notifyAppWidgetViewDataChanged(awm.getAppWidgetIds(new ComponentName(mContext, WidgetProvider.class)), R.id.widget_item);

я тоже пробовал

rv.setViewVisibility(R.id.widget_item, View.GONE); 

вместо

rv.removeAllViews(R.id.image_frame);

Оба из них приведут к тому, что представление будет пустым, но представление все еще существует. Я могу сказать, потому что, когда я пролистываю StackView, я вижу пустую позицию.


person Randy    schedule 04.02.2014    source источник


Ответы (2)


если вы хотите установить видимость, вы должны написать код следующим образом:

mView.sezVisibility(View.Gone);

если вы хотите удалить, то:

rv.removeView(mButton); //For examble remove a button
person Mert    schedule 04.02.2014
comment
Спасибо за ваш отзыв. Этот виджет использует RemoteViews, и эти две упомянутые вами функции не работают с RemoteViews. - person Randy; 04.02.2014
comment
ой, СРИ, я думал, что фургон - это лаут или что-то в этом роде, сри :D - person Mert; 04.02.2014

StackView использует адаптер, чтобы узнать, сколько элементов нужно показать. Если вы хотите добавить или удалить элемент, вам нужно изменить адаптер, а не изменять вид напрямую.

person Jon Ander Peñalba    schedule 04.02.2014
comment
Я не уверен, как изменить файл remoteAdapter. Эта ссылка объясняет, как я бы установил текст для TextView: new-one" title="просто обновите удаленные представления виджета вместо полного создания нового"> stackoverflow.com/questions/4528824/ Но я хочу удалить все представление из виджета, а не просто изменить текст. - person Randy; 04.02.2014