首页 > 解决方案 > 从可移动相对布局内的 URL 设置图像

问题描述

我有一个可移动的相对布局,可以重新定位在屏幕的任何位置。我参考了这个链接来使我的相对布局可移动。

https://github.com/bara96/MovableFloatingActionButton

我有一个 imageview、textview 和一个 recyclerview。现在,当我使用来自 API 的 URL 在我的 imageview 中设置图像时,它不能按预期工作。如果我在 xml 文件中而不是在我的 Activity 中设置 imageview 的背景,那么它可以正常工作。

欢迎任何线索。

MovableRelativeLayout 的布局

<?xml version="1.0" encoding="utf-8"?>
<MovableRelativeLayout 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/rlMovFloatingButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_margin="@dimen/_5sdp"
    android:elevation="@dimen/_1sdp"
    android:visibility="gone">


    <ImageView
        android:id="@+id/imgFloatingButton"
        android:layout_width="@dimen/_35sdp"
        android:layout_height="@dimen/_35sdp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_gravity="bottom|end"
        android:layout_marginEnd="@dimen/fab_margin"
        android:layout_marginBottom="@dimen/fab_margin"
        android:background="@drawable/splash_logo"
        android:elevation="@dimen/_1sdp"
        android:scaleType="centerCrop" />



    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rvImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@id/imgFloatingButton"
        android:layout_alignBottom="@id/imgFloatingButton"
        android:elevation="@dimen/_1sdp"
        tools:itemCount="1"
        tools:listitem="@layout/floating_image_item" />

</MovableRelativeLayout>

我像这样在imageview中设置图像

Glide.with(context)
                                .load(item.getBusiness_logo())
                                .placeholder(R.drawable.user_placeholder)
                                .circleCrop()
                                .error(R.drawable.user_placeholder)
                                .into(imgFloatingButton);

我面临的问题以及我面临的原因

imageview(imgFloatingButton) 点击监听器给我带来了问题。我的要求让我做这样的事情,即点击imgFloatingButton,会打开一个小弹出窗口。所以,我就这样做了。

imgFloatingButton.setOnClickListener(this)

所以,当我试图拖动可移动的相对布局时,它并没有这样做。

标签: android

解决方案


也许您在相对布局中的图像视图具有 wrap_content 大小,并且当您设置图像时,它会占用整个视图的宽度和高度,并且您的相对布局本身无法获得触摸事件。首先为您的图像视图设置较小的宽度和高度,然后对其进行测试。如果问题解决了,那么您需要将 imageview 的触摸事件提供给您的相对布局。


推荐阅读