【问题标题】:How to set the View layout gravity on Xml on android?如何在 Android 上的 Xml 上设置视图布局重力?
【发布时间】:2021-02-15 03:58:12
【问题描述】:

我尝试使用此库添加弹跳点加载 com.wang.avi:library:2.1.3

但是视图总是在“左边”

这是我的 xml 代码

    <LinearLayout
            android:id="@+id/linear7"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center_horizontal|center_vertical"
            android:orientation="vertical"
            android:layout_gravity="center_horizontal|center_vertical">
            <com.wang.avi.AVLoadingIndicatorView
                android:id="@+id/here"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="8dp"
                android:gravity="center_horizontal|center_vertical"
                android:orientation="horizontal"
                app:indicatorName="BallPulseIndicator"
                app:indicatorColor="#FF9800"/>
        </LinearLayout>

【问题讨论】:

  • @Aman 我不认为它需要 gradle 文件,他只需要在屏幕中心设置该布局

标签: java android xml android-layout layout


【解决方案1】:

试试这个。它应该工作:

   <LinearLayout
            android:id="@+id/linear7"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:orientation="vertical"
            android:layout_gravity="center_horizontal|center_vertical">
            <com.wang.avi.AVLoadingIndicatorView
                android:id="@+id/here"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="8dp"
                android:gravity="center_horizontal|center_vertical"
                android:orientation="horizontal"
                app:indicatorName="BallPulseIndicator"
                app:indicatorColor="#FF9800"/>
        </LinearLayout>

【讨论】:

    【解决方案2】:

    你也可以把整个东西放在一个RelativeLayout中并设置

    android:layout_centerInParent="true"
    

    【讨论】:

      【解决方案3】:

      您可以使用任何方便的线性布局或相对布局。

      使用在下面添加此行进行线性布局,

      <LinearLayout
          android:id="@+id/linear7"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:gravity="center_horizontal|center_vertical|start"
          android:orientation="vertical"
          android:layout_gravity="center_horizontal|center_vertical">
          <ImageView
              android:id="@+id/here"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:padding="8dp"
              android:src="@drawable/ic_launcher_background"
              android:gravity="center_horizontal|center_vertical|start"
              android:orientation="horizontal"/>
      </LinearLayout>
      

      对于相对布局只需添加以下代码:

      <RelativeLayout
          android:id="@+id/linear7"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_alignParentEnd="true"
          android:orientation="vertical"
          android:layout_gravity="center_horizontal|center_vertical">
          <ImageView
              android:id="@+id/here"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:padding="8dp"
              android:src="@drawable/ic_launcher_background"
              android:layout_alignParentStart="true"
              android:orientation="horizontal"/>
      </RelativeLayout>
      

      谢谢

      【讨论】:

        【解决方案4】:

        为此,我认为最好将 RelativeLayoutlayout_centerInParent 一起用于这样的孩子:

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        
            <com.wang.avi.AVLoadingIndicatorView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"
                        android:gravity="center_horizontal|center_vertical"
                        android:orientation="horizontal"
                        app:indicatorName="BallPulseIndicator"
                        app:indicatorColor="#FF9800"/>
        </RelativeLayout>
        

        但对于 LinearLayout,我认为您的问题可以通过设置 AVLoadingIndicatorView 布局 widthheight "wrap_content" 或 const 值来解决。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多