在 Android Studio 上的应用中放置底部元素

Put on the bottom elements in an App on Android Studio

提问人:Davencode 提问时间:5/18/2021 更新时间:5/18/2021 访问量:469

问:

我在 Android Studio 上的应用有问题。 我想知道如何在不破坏各种智能手机结构的情况下将布局的底部(固定位置)放在上面。我正在使用线性布局,放在底部的元素是: 编辑文本(评论区)+ 编辑文本右侧的“发送评论”按钮。谢谢。

android xml android-studio android-layout 布局

评论

0赞 Gabriele Mariotti 5/18/2021
发布布局
0赞 Davencode 5/18/2021
pastebin.com/NaiSVz3D < -- 这是我的布局。

答:

0赞 Mohit Ajwani 5/18/2021 #1

理想的方法是使用 ConstraintLayout,因为它会为你提供很多选项来执行此操作。如果线性布局高度为“匹配父级”,则使用 LinearLayout。您可以设置 的 item 属性。gravity=bottom

约束布局示例代码

<androidx.constraintlayout.widget.ConstraintLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/editText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        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_width="wrap_content"
        android:layout_height="wrap_content"
        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>

评论

0赞 Davencode 5/19/2021
ibb.co/ZfcsDYQ(使用手机测试)ibb.co/w4v01sK(在 Android Studio 上使用 AVD 测试)。我使用了约束,但我不知道问题出在哪里。
0赞 Mohit Ajwani 5/19/2021
@Davencode您能分享布局的XML吗?这将有助于理解问题。您可以编辑问题并添加代码。
0赞 Mohit Ajwani 5/19/2021
@Davencode - 我检查了你的布局,没有 constraintLayout,这是一个非常复杂、嵌套和过度设计的布局 - LinearLayout 中的 4 级 LinearLayoutCompat。他们有 2 个 recyclerViews 和其他视图。您应该查看 Android 指南,并为部分使用片段并包括布局等。另外,我检查了您提供的图像。布局中有什么问题?editText 和 Button 与页面底部对齐。你能解释一下这个问题吗?
0赞 Davencode 5/19/2021
问题是我想将 2 个元素(编辑文本和按钮)放在固定的底部位置,但是当我在手机上看到它时,我看到这两个元素更像这样 ibb.co/ZfcsDYQ .当我看到我的 AVD 经理的 ibb.co/w4v01sK 时,没有向上移动,我想要那个定位。我的问题是..为什么会发生这种事情?是关于屏幕尺寸的?我能解决这个问题吗?
0赞 Mohit Ajwani 5/19/2021
分享布局代码,我们可以尝试找出原因。
0赞 Aymeric Loos 5/18/2021 #2

也许您可以使用一个名为 ConstraintLayout 的新布局。您必须将此新布局与线性布局放在同一级别,并且不会破坏您的工作。