ConstraintLayout中的EditText无法正常工作

问题描述 投票:0回答:2

我在AppCompatEditText中都有一个FrameLayout作为搜索栏,并且有一个ConstraintLayout作为“清除”按钮:

<androidx.constraintlayout.widget.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:layout_width="match_parent"
    android:layout_height="match_parent"
    ...
    android:layoutDirection="ltr">

    <FrameLayout
        android:id="@+id/clearBtnLyt"
        android:layout_width="36dp"
        android:layout_height="36dp"
        ...
        app:layout_constraintBottom_toBottomOf="@+id/editText1"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@id/editText1">

        ... CONTENTS ...

    </FrameLayout>

    <androidx.appcompat.widget.AppCompatEditText
        android:id="@+id/editText1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        ...
        android:layoutDirection="rtl"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/clearBtnLyt"
        app:layout_constraintTop_toBottomOf="@id/toolbar1" />

    ...
</androidx.constraintlayout.widget.ConstraintLayout>

ConstraintLayout设置为从左到右,只有AppCompatEditText是RTL。这些视图已在Android Studio的布局预览中很好地显示。

enter image description here

但是当我在装有Android 8.0操作系统的Samsung Galaxy A5(2017)上运行该应用程序时,它看起来像这样:

enter image description here

我无法在AppCompatEditText中输入任何内容或单击它,但是“清除”按钮正在起作用。我的手机也设置为从左到右。 我在做什么错?

android android-layout view android-edittext android-constraintlayout
2个回答
0
投票

问题是因为我将layoutDirectionAppCompatEditText设置为rtl。因为应该是从右到左,所以我没有将其设置为ltr,但是我将其约束从[]更改为

    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/clearBtnLyt"
    app:layout_constraintTop_toBottomOf="@id/toolbar1"

0
投票

我认为这是一个错误,当您更改layoutDirection RTL时,它在开始/结束和左/右之间有混淆,您可以将开始左右更改为en,同样:

© www.soinside.com 2019 - 2024. All rights reserved.