简体   繁体   English

将 ImageView 与 textView 中的文本对齐

[英]Align ImageView to end to text in textView

I need to align an imageView to end of textView, both are constraint on end to a checkbox.我需要将 imageView 与 textView 的末尾对齐,两者都限制在复选框的末尾。 The problem with my code is imageView always appears on the start of Checkbox and not where text in textView ends.我的代码的问题是 imageView 总是出现在 Checkbox 的开头,而不是 textView 中的文本结束的地方。 Can anyone help谁能帮忙

<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="0dp"
    android:layout_height="wrap_content"
    android:background="@color/white">

    <TextView
        android:id="@+id/tvMerchantTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/margin4"
        android:layout_marginEnd="@dimen/margin8"
        android:layout_marginStart="@dimen/margin16"
        android:drawablePadding="@dimen/padding4"
        android:ellipsize="middle"
        android:maxWidth="@dimen/width200"
        android:singleLine="true"
        android:textSize="@dimen/textSize12"
        app:layout_constraintBottom_toTopOf="@id/tvMerchantSubtitle"
        app:layout_constraintEnd_toStartOf="@id/cbMerchantSelect"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintStart_toEndOf="@id/ivMerchantLogo"
        app:layout_constraintTop_toTopOf="@id/ivMerchantLogo" />

    <androidx.appcompat.widget.AppCompatCheckBox
        android:id="@+id/cbMerchantSelect"
        android:layout_width="@dimen/width16"
        android:layout_height="@dimen/height16"
        android:layout_marginEnd="@dimen/margin16"
        android:button="@drawable/ic_round_checkbox"
        android:clickable="false"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

I am using glide to set image to textView end drawable -我正在使用 glide 将图像设置为 textView end drawable -

Glide.with(this)
                .load(url)
                .into(object : CustomTarget<Drawable?>(
                    DisplayUtils.dpToPx(this.context, R.dimen.width30),
                    DisplayUtils.dpToPx(this.context, R.dimen.height20)
                ) {

                    override fun onLoadCleared(@Nullable placeholder: Drawable?) {}

                    override fun onResourceReady(
                        resource: Drawable,
                        transition: com.bumptech.glide.request.transition.Transition<in Drawable?>?
                    ) {
                        mBinding.inPaymentMethod.tvMerchantTitle.setCompoundDrawablesWithIntrinsicBounds(
                            null,
                            null,
                            resource,
                            null
                        )
                    }
                })

Add app:layout_constraintStart_toEndOf="@+id/tvMerchantTitle" to your ImageViewapp:layout_constraintStart_toEndOf="@+id/tvMerchantTitle"添加到您的 ImageView

Example Code:示例代码:

<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="wrap_content"
    android:background="@color/white">

    <TextView
        android:id="@+id/tvMerchantTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="16dp"
        android:drawablePadding="4dp"
        android:ellipsize="middle"
        android:maxWidth="200dp"
        android:singleLine="true"
        android:textSize="12sp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@id/ivMerchantLogo"
        app:layout_constraintBottom_toBottomOf="@+id/ivMerchantLogo"
        android:text="@string/app_name"/>
    <ImageView
        android:id="@+id/ivMerchantLogo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toEndOf="@+id/tvMerchantTitle"
        app:layout_constraintTop_toTopOf="parent"/>
    <androidx.appcompat.widget.AppCompatCheckBox
        android:id="@+id/cbMerchantSelect"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:clickable="false"
        android:gravity="end"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="@id/ivMerchantLogo"
        app:layout_constraintBottom_toBottomOf="@+id/ivMerchantLogo" />

</androidx.constraintlayout.widget.ConstraintLayout>

Output for above code is like:上述代码的 Output 如下所示:

在此处输入图像描述

If Textview's text is too long, Textview and ImageView will be over Checkbox's left How could make <ImageView's right> is not over <Checkbox's left> do not use textview drawableright like below如果Textview的文字太长,Textview和ImageView会在Checkbox的左边如何使<ImageView的右边>不在<Checkbox的左边>不要使用ZE62B85E9C91FF5C83DZEBdrawableCright like below

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM