Самый простой способ сделать это - использовать приведенный ниже код:
while(blockSetLength--){
//this will change the class of n-1 dom object
blockSet[blockSetLength].className='block-selected';
}
Ты не слишком много делаешь. Весь виджет приложения настроен правильно. Это чисто макет. Кажется, он не удовлетворен сложностью файла playback_widget.xml. Я изменил файл на следующее:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/playback_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/poster_imageview"
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/ic_headset_mic_light_black_140dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/title_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:textAlignment="center"
android:textColor="@color/primaryTextColor"
android:textSize="16sp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/default_text_padding">
<ImageView
android:id="@+id/player_previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginEnd="32dp"
android:layout_marginRight="32dp"
android:layout_toLeftOf="@+id/player_play_pause"
android:src="@drawable/ic_skip_previous_white_32dp" />
<ImageView
android:id="@+id/player_play_pause"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/ic_play_arrow_white_40dp" />
<ImageView
android:id="@+id/player_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="32dp"
android:layout_marginStart="32dp"
android:layout_toRightOf="@id/player_play_pause"
android:src="@drawable/ic_skip_next_white_32dp" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
Теперь вид виджетов выглядит отлично. Я понимаю, что это, вероятно, не точный макет, который вам нужен, но вам просто нужно поиграть с ним, пока не найдете что-то, что ему нравится.
Виджеты главного экрана могут быть бит сложный, потому что у вас есть более ограниченный набор представлений и меньше гибкости с точки зрения макета.
Также я не проверял, но я не уверен, что в виджетах рабочего стола разрешено следующее представление:
<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:background="?colorAccent" />
Также, если у вас возникли проблемы с тем, чтобы эта ошибка исчезла , Уничтожьте виджет главного экрана и перезапустите телефон. Они иногда попадают в защищенное состояние во время разработки.
Но в любом случае ваш проект отлично работает для меня после изменения playback_widget.xml. Android 8.0.