android - 将 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
对象。我希望它垂直居中和水平居中。现在,由于工具栏对象,分页容器稍微偏右。
解决方案
线性布局将视图水平或垂直堆叠成一行。使用约束布局或相对布局可以解决此问题。
然后,您可以设置约束以将它们放置在您想要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>
推荐阅读
- selenium - 是否可以捕获 DOM 快照
- semaphore - 理解 semFlush 的功能
- firebase - Firebase 在浏览器可用并支持 webp 时提供 webp - 有条件的重写
- javascript - 找不到.json文件(Node.js NPM游戏编程)
- caching - 如何使用redis缓存更新页面计数器?
- python-3.x - Pandas 方法迭代行并使用前一行的值执行计算
- java - Java 扩展类加载器加载任何扩展名或无扩展名的 JAR 文件
- angular - Angular 8 ngrx 商店如何在没有订阅回调的情况下获取减速器值?
- unity3d - 3rd Party SDK 的集成问题
- c - 函数不使用 C 中的指针返回正确的值