Пожалуйста, игнорируйте, если вы находите это тривиальным или нерелевантным, но вы не можете попробовать (если вы имеете дело с widgets ):
- Объявление различных макетов (
xml
) для вашего widget
.
- Измените источник
remoteView'
s (layout.id
) вместо попыток внести изменения в выбранный макет.
AFAIK , это наиболее распространенный подход к решению таких проблем. Это не идеально для двух простых вещей, которые я мог бы отметить сам:
- Что вы будете делать, если у вас есть n различных "состояний" / "представлений" в вашем виджете?
Но если ваши файлы с 9 патчами также являются статическими ресурсами, n является болезненным, но теоретически управляемым.
- Отслеживать изменения в этих параллельных файлах утомительно.
Я бы тоже хотел найти легкий способ для этого ...
Этот подход не может быть вариантом для вас также, потому что это в основном трудный путь. Но, тем не менее, это вариант.
Предложение № 2
Вы пытались использовать метод?
public void setInt (int viewId, String methodName, int value)
remoteView.setInt(R.id.viewid, "setBackgroundResource", R.drawable.backgroung_lime);
Из другого вопроса: Изменение удаленного просмотра фона ImageView