如何在框架布局中在中心屏幕上设置ProgressBar?

Ars*_*war 23 android android-layout

我正在使用以下代码,但我的进度条没有显示在框架布局的中心.我想避免填充到我的进度条.任何人都可以解释一下吗?如果我使用"线性布局",它是完美的工作

<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical|center_horizontal">

    <ProgressBar android:id="@+id/progress_bar"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" />

    <ImageView android:id="@+id/gallery_img"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" />

 </FrameLayout>
Run Code Online (Sandbox Code Playgroud)

小智 40

使用

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_centerInParent="true"
Run Code Online (Sandbox Code Playgroud)

例:

 <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content"
     android:layout_centerHorizontal="true"
     android:layout_centerVertical="true"
     android:layout_centerInParent="true" />
Run Code Online (Sandbox Code Playgroud)

android:gravity 不支持属性 ProgressBar

  • 您说的那些参数特定于RelativeLayout. (7认同)
  • layout_centerInParent对于相对布局非常有效!,引力不起作用. (3认同)

Piy*_*ush 38

在您的progressBar的布局xml中设置android:layout_gravity(而不是android:gravity)to"center"

android:layout_gravity = "center"
Run Code Online (Sandbox Code Playgroud)

  • 在2010年不确定,但是现在,ProgressBar没有重力属性. (9认同)
  • 随之而来.在Progressbar中使用layout_gravity.:) (4认同)
  • 您应该使用[layout_gravity](https://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html#attr_android:layout_gravity)而不仅仅是[gravity](https://developer.android.com/参考/机器人/插件/ LinearLayout.LayoutParams.html#重力).你也可以只使用`center`而不是`center_vertical | center_horizo​​ntal`. (2认同)

Kar*_*aru 13

FrameLayout没有android:gravity.您需要设置android:layout_gravityProgressBar,而不是.


Kug*_*mar 9

<ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ***android:layout_gravity="center"*** /> 
Run Code Online (Sandbox Code Playgroud)

添加此行

 <ProgressBar
              android:layout_gravity="center" />
Run Code Online (Sandbox Code Playgroud)

  • 这实际上是这个问题的唯一正确答案. (2认同)

小智 5

只需将您的布局更改为RelativeLayout 并将 android:layout_centerInParent="true" 添加到您的ProgressBar 中即可。

<ProgressBar
android:id="@+id/progBar"
android:indeterminateDrawable="@drawable/my_progress_indeterminate"
android:layout_height="50dp" 
android:layout_centerInParent="true"
android:layout_width="50dp">
</ProgressBar>
Run Code Online (Sandbox Code Playgroud)


小智 5

<ProgressBar
    android:id="@+id/progressBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_centerInParent="true"
    />
Run Code Online (Sandbox Code Playgroud)