首页 > 解决方案 > 将 LinearLayout 内的 LinearLayout 与其他项目对齐

问题描述

现在我有一个像这样的 AppBarLayout

<com.google.android.material.appbar.AppBarLayout
            android:id="@+id/toolbar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            app:elevation="0dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <LinearLayout
                android:orientation="horizontal"
                android:gravity="center_vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <androidx.appcompat.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="wrap_content"
                    android:layout_height="?android:attr/actionBarSize"
                    android:theme="@style/ActionBarTheme_Dark"
                    app:contentInsetStart="@dimen/dimen_medium_margin"
                    app:layout_collapseMode="pin" />

                <LinearLayout
                    android:id="@+id/pagination_bubble_container"
                    android:gravity="center"
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="6dp">
                </LinearLayout>

            </LinearLayout>

        </com.google.android.material.appbar.AppBarLayout>

我希望pagination_bubble_container成为屏幕的绝对中心,并完全忽略该toolbar对象。我希望它垂直居中和水平居中。现在,由于工具栏对象,分页容器稍微偏右。

标签: android

解决方案


线性布局将视图水平或垂直堆叠成一行。使用约束布局或相对布局可以解决此问题。

然后,您可以设置约束以将它们放置在您想要pagination_bubble_container的位置。toolbar

<com.google.android.material.appbar.AppBarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        app:elevation="0dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <RelativeLayout
            android:orientation="horizontal"
            android:gravity="center_vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="wrap_content"
                android:layout_height="?android:attr/actionBarSize"
                android:theme="@style/ActionBarTheme_Dark"
                app:contentInsetStart="@dimen/dimen_medium_margin"
                app:layout_collapseMode="pin"
                android:layout_alignParentTop="true"
                android:layout_alignParentStart="true"
                android:layout_marginTop="0dp"
                android:layout_marginStart="0dp" />

            <LinearLayout
                android:id="@+id/pagination_bubble_container"
                android:gravity="center"
                android:orientation="horizontal"
                android:layout_width="match_parent"
                android:layout_height="6dp"
                android:layout_alignParentTop="true"
                android:layout_alignParentBottom="true"
                android:layout_alignParentStart="true"
                android:layout_alignParentEnd="true"
                android:layout_marginTop="0dp"
                android:layout_marginBottom="0dp"
                android:layout_marginStart="0dp"
                android:layout_marginEnd="0dp">
            </LinearLayout>

        </RelativeLayout>

    </com.google.android.material.appbar.AppBarLayout>

推荐阅读