0

我正在尝试将我的 ProgressBar 放在 TableLayout 的顶部。

代码:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:baselineAligned="false"
    android:orientation="vertical" >

<ProgressBar
    android:id="@+id/bar_Update"
    style="?android:attr/progressBarStyleLarge"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="250dp"
    android:visibility="visible" />

<ScrollView 
    android:id="@+id/ScrollView01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">

<TableLayout    
    android:id="@+id/tableLayout1"  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:shrinkColumns="*"  
    android:stretchColumns="*"
    android:gravity="center_horizontal"
    android:layout_gravity="top">    

      <TableRow 
          android:id="@+id/RowTitle" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content">

      <TextView
          android:id="@+id/Title"
          android:layout_width="fill_parent"
          android:layout_height="60px"
          android:gravity="center"
          android:text="Unterichtsausfall: \n"
          android:textSize="20dp"
          android:textStyle="bold"
          android:typeface="serif" >
      </TextView>

      <ImageView
          android:id="@+id/imgUpdate"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:adjustViewBounds="false"
          android:baselineAlignBottom="false"
          android:clickable="true"
          android:src="@drawable/refresh" />

    </TableRow>   

</TableLayout>
</ScrollView>

</LinearLayout>

setVisibility(View.VISIBLE)在我的代码中使用以在布局顶部显示进度条,但它不起作用。为了显示它消失了,我正在使用setVisibility(View.INVISIBLE). 我究竟做错了什么?我的目标是从互联网上获取数据。在此期间,微调器正在显示。一旦获取数据,它就会显示在表格中,并且 Spinner 消失了。

谢谢!

4

2 回答 2

1

“在上面”和“在上面”之间存在细微差别。“在顶部”通常意味着它覆盖了下面的图形,就像人们通常想要使用 ProgressBar 一样。

'Above',通常意味着更高的屏幕顶部,这样 ScrollView 和 TableLayout 会更靠近屏幕底部。

如果您的 ProgressBar 是“在顶部”,那么View.INVISIBLE就可以了。但是,您ProgressBar的布局“高于”下面的布局。因此,按照您实施的方式,您可能应该将其设置为View.GONE以隐藏它。


如果您想在下面的布局中显示进度条“在顶部”或“上方”,则必须将顶层布局设置为 aRelativeLayout而不是 a LinearLayout


最后,我不明白出了什么问题。究竟是什么不适合您的布局或代码行为?

于 2013-03-26T22:05:21.027 回答
0

我遇到了这个问题,我的进度条被隐藏在表格布局下方,我设法纠正它并使其成为最顶层并显示在表格顶部而不会在经过反复试验后被遮挡。

我的基本布局需要重新安排,我将进度条放在外部布局内,将 tableLayout 放在嵌套布局内。在我的 ProgressBar 位于包含表格的嵌套布局之后,也需要排序。

工作时看起来像这样......

<RelativeLayout....outer layout

    <ScrollView....
    <RelativeLayout....nested layout
         Some TextViews etc...
        <TableLayout.....inside nested layout/>
    </RelativeLayout>
    </ScrollView>
  <ProgressBar....inside outer layout
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:foregroundGravity="center_vertical|center_horizontal"/>
</RelativeLayout>
于 2018-04-04T10:39:09.980 回答