应该很容易,对吧?所以-这就是我在XML中定义ViewSwitcher
的方式(为简洁起见,省略了ID和布局)
<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的引用。我在这里想念一些明显的东西吗?
P.S.我只是通过强力发现这行得通:
switcher.setDisplayedChild(1);
仍然-为什么
bringToFront()
没有运气? 最佳答案
bringToFront()
实际上与ViewSwitcher
无关,该方法是从View类继承的,表示当前 View 的z顺序操作:https://developer.android.com/reference/android/view/View.html#bringToFront()
您必须使用从showNext()
继承的showPrevious()
和ViewAnimator
方法。
关于Android-ViewSwitcher不会切换 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3763171/