我有一个LinearLayout,它有一个取消按钮和一个进度条,其中进度条为70%,取消按钮为30%,如下所示:
<LinearLayout android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<ProgressBar
android:id="@+id/uploadProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_weight=".7"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
/>
<Button
android:id="@+id/uploadCancelButton"
style="@style/TitleBarButton"
android:layout_width="0dp"
android:layout_weight=".3"
android:layout_height="wrap_content"
android:text="@string/cancel_btn"
android:layout_gravity="center_vertical"
/>
</LinearLayout>
这很好用,但是我意识到实际上我想要显示进度条或文本视图,其中文本视图可能是一个小状态消息(如果说上传失败)。
我尝试将TextView放在上面的LinearLayout中,默认情况下将其可见性设置为“消失”,并将权重设置为与进度条相同。在代码中,我只将进度条设置为可见或文本视图,另一个我将设置为消失。然而,android系统似乎贡献了无形物品的重量。我甚至尝试在LinearLayout xml属性中使用android:weightSum =“1.0”,但那时我的按钮不再可见,因为即使文本消失了,也占用了空间。
答案 0 :(得分:2)
ViewFlipper正是您要找的。
使用起来非常简单。您将想要切换的视图放在ViewFlipper中的方式与将它们放置在XML内的布局中的方式完全相同。然后,从代码中,在包含您的观看次序的setDisplayedChild()
对象上调用ViewFlipper
。此方法的参数是您要显示的视图的索引。