首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何同时将按钮限制在屏幕底部和文本视图上?

如何同时将按钮限制在屏幕底部和文本视图上?
EN

Stack Overflow用户
提问于 2021-03-31 19:16:40
回答 1查看 860关注 0票数 1

我有以下简单的应用程序设计。工具栏、文本视图和按钮。

如何构建这样的布局设计:

  1. 当文本较小时,当文本较长时,按钮被限制在屏幕的底部,而不是在按钮下扩展,而是延伸到滚动视图

的高度。

编辑:下面介绍了@MariosP的解决方案。将按钮限制到文本视图和屏幕底部。但是,如果您这样做,您将看到该按钮默认为两个约束的平均值,因此它垂直地在这两个约束之间浮动,这不是我想要的。诀窍是在按钮上使用app:layout_constraintVertical_bias="1"。这告诉布局,您不希望按钮位于它的垂直约束的中间,而是希望位于两个约束的最底层(底部边缘)。改变0到1之间的偏置数将使按钮沿着这些垂直约束滑动。如果您得到的布局按钮是悬停在您的其他文本视图,这一信息将帮助您解决。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-02 14:04:13

您可以使用ScrollView和ConstraintLayout的子级来实现这种行为。以下是xml布局:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_blue_dark"
    android:fillViewport="true">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constraintLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/button"
            android:layout_width="200dp"
            android:layout_height="80dp"
            android:text="Button"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:backgroundTint="@android:color/holo_red_light" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua"
            android:textColor="@android:color/white"
            android:textSize="16sp"
            android:layout_margin="40dp"
            app:layout_constraintVertical_bias="0"
            app:layout_constraintBottom_toTopOf="@+id/button"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/toolbar" />

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:background="@android:color/holo_green_light"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>

</ScrollView>

一个小文本的结果:

结果有一个长文本(在滚动到底部之后):

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66893973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档