Android: Как добавить вертикальный индикатор в виджет домашнего экрана? - PullRequest
0 голосов
/ 27 сентября 2011

Мне нужно поместить вертикальную полосу прокрутки в виджет домашнего экрана, и после многократного поиска я не могу найти удобное решение, которое работает на API3 и выше!

Я пробовал много решений: - использование растрового изображения, созданного во время выполнения, но на некоторых экранах оно никогда не достигает 100% - растровое изображение patch9, но отображение полосы прокрутки полностью портится, когда прогресс приближается к 0. - используя addView () со 100 существующими макетами, и он отлично работает, за исключением того, что он доступен только с API7! - Включая все 100 макетов и показывая только по одному за раз, отлично работает, но какой беспорядок включать те в мои 8 различных макетов виджетов!

Я пытался использовать вес программным путем, но это также невозможно, любое другое решение изменить размер представления на основе%?

Вот один макет индикатора выполнения, который я сейчас использую:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent" android:layout_height="fill_parent">
    <ImageView android:layout_weight="11" android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
    <ImageView android:src="@drawable/scale"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:layout_weight="89" />
</LinearLayout>

Ответы [ 2 ]

0 голосов
/ 10 октября 2012

Единственное решение, которое я нашел до сих пор, - это иметь все возможные уровни прогресса, готовые к использованию в различных файлах макета Xml.

В API Android <7 все они должны быть включены в один макет XML иотображается / скрывается во время выполнения, в то время как в Android API> = 7 можно фактически использовать addRemoteView (), чтобы включить желаемый макет гораздо более эффективным способом!

0 голосов
/ 27 сентября 2011

Вы должны использовать ScrollView !Вы должны поместить это в макет.По умолчанию scrollview предназначен для вертикальной прокрутки.Если вы хотите горизонтальную прокрутку, вы должны указать HorizontalScrollView.Надеюсь, это поможет

...