在 Android Studio 上的 App 中放置底部元素
Posted
技术标签:
【中文标题】在 Android Studio 上的 App 中放置底部元素【英文标题】:Put on the bottom elements in an App on Android Studio 【发布时间】:2021-08-07 19:13:10 【问题描述】:我在 android Studio 上的应用有问题。 我想知道如何在不破坏各种智能手机结构的情况下将布局放在底部(固定位置)。我正在使用线性布局,放在底部的元素是: 编辑文本(cmets 区域)+ 编辑文本右侧的“发送评论”按钮。谢谢。
【问题讨论】:
发布您的布局 pastebin.com/NaiSVz3D 【参考方案1】:理想的方法是使用 ConstraintLayout,因为它会为您提供很多选择。如果线性布局高度与父级匹配,则使用 LinearLayout。可以设置gravity=bottom
的item属性。
约束布局示例代码
<androidx.constraintlayout.widget.ConstraintLayout
android:orientation="vertical"
android:layout_
android:layout_>
<EditText
android:id="@+id/editText"
android:layout_
android:layout_
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="16dp"
android:background="@drawable/bg_input"
android:hint="Taper votre message"
android:padding="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/button"
android:layout_
android:layout_
android:layout_marginEnd="16dp"
android:background="@drawable/bg_button"
android:text="Send"
android:textColor="@android:color/white"
app:layout_constraintBottom_toBottomOf="@+id/editText"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/editText" />
</androidx.constraintlayout.widget.ConstraintLayout>
【讨论】:
ibb.co/ZfcsDYQ(用我的手机测试)ibb.co/w4v01sK(用 Android Studio 上的 AVD 测试)。我使用了约束,但我不知道问题是什么.. @Davencode 你能分享一下布局的xml吗?这将有助于理解问题。您可以编辑您的问题并添加代码。 @Davencode - 我检查了你的布局,没有约束布局,它是一个非常复杂、嵌套和过度设计的布局 - LinearLayout 中有 4 级 LinearLayoutCompat。他们有 2 个 recyclerViews 和其他视图。您应该检查 Android 指南,并为部分使用片段并包含布局等。此外,我检查了您提供的图像。布局中的问题是什么? editText 和 Button 与页面底部对齐。你能解释一下这个问题吗? 问题是我想把两个元素(编辑文本和按钮)放在一个固定的底部位置,但是当我在手机上看到这两个元素时,我看到这两个元素更像这样@987654323 @ .当我在我的 AVD 经理上看到ibb.co/w4v01sK 时,没有向上移动,我想要那个定位。我的问题是..为什么会发生这种情况?和屏幕大小有关吗?我能解决这个问题吗? 分享版面代码,我们可以试试找原因。【参考方案2】:也许您可以使用名为 ConstraintLayout 的新布局。你必须把这个新布局和你的线性布局放在同一层级,它不会破坏你的工作。
【讨论】:
以上是关于在 Android Studio 上的 App 中放置底部元素的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio 中的 Flutter App 不会通过热重载或热重启在虚拟设备上更新