1

我有一个 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>

这很好用,但是我意识到实际上我想要显示进度条或文本视图,其中文本视图可能是一个小的状态消息(如果说上传失败)。

我尝试在上面的 LinearLayout 中放置一个 TextView,并将其可见性默认设置为“已消失”,并且权重设置与进度条相同。在代码中,我只会将进度条设置为可见或文本视图,而将另一个设置为消失。然而,android 系统似乎对总重量贡献了不可见项目的重量。我什至尝试在 LinearLayout xml 属性中使用 android:weightSum="1.0" 但是我的按钮不再可见,因为即使文本消失了,它也占用了空间。

4

1 回答 1

2

ViewFlipper是您正在寻找的。

使用起来非常简单。您将要切换的视图放置在 ViewFlipper 中,就像将它们放置在 XML 中的布局中一样。然后从代码中调用包含您的视图setDisplayedChild()的对象。ViewFlipper此方法的参数是您要显示的视图的索引。

于 2012-09-04T17:53:26.357 回答