java - 如何使编辑文本适合两个按钮?

标签 java android android-layout

我有 3 个按钮,我想在它们之间创建一个文本字段, 这是 XML 代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
    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:id="@+id/selecmain"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff">


<Button
    android:id="@+id/button1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="50dp"
    android:layout_marginRight="50dp"
    android:elevation="5dp"
    android:textAlignment="center"
    android:textColor="#514e4e"
    android:textSize="20sp"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_marginStart="50dp"
    android:layout_marginEnd="50dp" />

<Button
    android:id="@+id/button2"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:textAlignment="center"
    android:textColor="#514e4e"
    android:textSize="20sp"
    android:elevation="5dp"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="@+id/button1"
    app:layout_constraintRight_toRightOf="@+id/button1"
    app:layout_constraintTop_toBottomOf="@+id/button1"
    tools:layout_constraintLeft_creator="1"
    tools:layout_constraintRight_creator="1"
    tools:layout_constraintTop_creator="1" />


<EditText
    android:id="@+id/et"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_gravity="top|center_horizontal"
    android:textSize="25sp"
    android:gravity="top|left"
    android:hint="Write something here."
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintBottom_toTopOf="@+id/count"
    android:maxLength="140"
    android:background="@null">
</EditText>

<TextView
    android:id="@+id/count"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:text="140/140"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintBottom_toTopOf="@+id/button3"
    android:layout_marginBottom="10dp" />

<Button
    android:id="@+id/button3"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:elevation="5dp"
    android:onClick="setBtnRecord"
    android:text="Record"
    android:textAlignment="center"
    android:textColor="#FFFFFF"
    android:textSize="20sp"
    android:visibility="visible"
    android:enabled="false"
    android:layout_marginBottom="10dp"
    app:layout_constraintLeft_toLeftOf="@id/button2"
    app:layout_constraintRight_toRightOf="@id/button2"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_bias="1.0" />
</android.support.constraint.ConstraintLayout>

我希望 edittext 填充 button2 和 button3 之间的空间,但我不能简单地将它放在按钮下方,因为我也想为 edittext 设置边界。我的 Intent 是让用户知道那些大面积的是给他们写的东西。 此外,有时我会让 button2 不可见,但我希望 edittext 保持相同的位置,就像 button2 在那里一样。

我知道它与 edittext 的高度有关,但我不确定如何使其适应不同的屏幕尺寸或什至只适合一种尺寸。

最佳答案

试试这段代码

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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:id="@+id/selecmain"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff">


<Button
    android:id="@+id/button1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_marginLeft="50dp"
    android:layout_marginRight="50dp"
    android:elevation="5dp"
    android:textAlignment="center"
    android:textColor="#514e4e"
    android:textSize="20sp"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_marginStart="50dp"
    android:layout_marginEnd="50dp" />

<Button
    android:id="@+id/button2"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:textAlignment="center"
    android:textColor="#514e4e"
    android:textSize="20sp"
    android:elevation="5dp"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintTop_toBottomOf="@+id/button1"
    app:layout_constraintLeft_toLeftOf="@+id/button1"
    app:layout_constraintRight_toRightOf="@+id/button1"
    tools:layout_constraintLeft_creator="1"
    tools:layout_constraintRight_creator="1"
    tools:layout_constraintTop_creator="1" />


<EditText
    android:id="@+id/et"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginTop="10dp"
    android:layout_gravity="top|center_horizontal"
    android:textSize="25sp"
    android:gravity="top|left"
    android:hint="Write something here."
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/button2"
    app:layout_constraintBottom_toTopOf="@+id/count"
    android:maxLength="140"
    android:background="@null">
</EditText>

<TextView
    android:id="@+id/count"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:text="140/140"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintBottom_toTopOf="@+id/button3"
    android:layout_marginBottom="10dp" />

<Button
    android:id="@+id/button3"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:elevation="5dp"
    android:onClick="setBtnRecord"
    android:text="Record"
    android:textAlignment="center"
    android:textColor="#FFFFFF"
    android:textSize="20sp"
    android:visibility="visible"
    android:enabled="false"
    android:layout_marginBottom="10dp"
    app:layout_constraintLeft_toLeftOf="@+id/button1"
    app:layout_constraintRight_toRightOf="@+id/button1"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_bias="1.0" />

关于java - 如何使编辑文本适合两个按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50518508/

相关文章:

java - Android 游戏(Llama 或 Duck)内存不足错误

java - RelativeLayout 导致 Listview 滞后

java - 从 javax.json.JsonObject 中移除键值对

java - 使用 Jaxb2 解码复杂类型

java - 复制构造函数在这里没用?

java - 使用 Oracle DB 的 Java Web 应用程序超过最大空闲时间

Android - 子类 ImageView - 错误膨胀类

android - 是否可以制作 Google Photos 风格的搜索栏?

android - 为什么 Delphi 10.3 应用程序在 Android 11 中崩溃?

Android:如何默认显示TextInputLayout的suffixText?