Вопрос

Это должно быть легко, верно? Так - вот как у меня есть ViewSwitcher Определено в XML (идентификаторы и макеты, опущенные для краткости)

<ViewSwitcher android:layout_height="wrap_content" android:layout_width="fill_parent" >       
    <!-- First view, comes up OK --> 
    <LinearLayout android:id="@+id/header1">
        <!-- some more controls: Progress bar, test view and the button -->
    </LinearLayout>
    <!-- second view. changing to the actual (not include) layout has no effect -->
    <include android:id="@+id/header2" />
</ViewSwitcher>

Тогда где-то в моем коде Java у меня есть этот код

ViewSwitcher switcher = (ViewSwitcher) findViewById(R.id.profileSwitcher);
// more code that basically executes background search
// when call comes back - switch
switcher.bringToFront(); // does nothing
// switcher.bringChildToFront(findViewById(R.id.header2)); // no effect ether

Это просто не переключение. Я разрабатываю для API V. 3 (1,5+) и к моему удивлению. Есть несколько немногих ссылок на Viewswitcher. Я здесь не хватает что-то очевидное?

PS Я только что узнал грубую силу, что это работает:

switcher.setDisplayedChild(1);

Тем не менее - почему не повезло с bringToFront()?

Это было полезно?

Решение

bringToFront() на самом деле не имеет ничего общего с ViewSwitcher, метод унаследован от класса зрения и подписчики для манипулирования Z-порядком текущего представления: https://developer.android.com/reference/android/view/view.html#bringtofront ()

Вы должны использовать showNext() а также showPrevious() методы унаследованы от ViewAnimator.

Другие советы

В ViewSwitcher Для перемещения между представлениями вы можете использовать методы showPrevious() а также showNext()

Или использование также может перейти к определенному представлению setDisplayedChild(int index) Метод, где индекс может быть либо 0 или 1

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top