为什么不显示位于回收者视图顶部的图像视图?

时间:2019-12-03 09:29:00

标签: android android-recyclerview android-imageview

我正在尝试将图像视图作为横幅添加到回收者视图的顶部。因此在某些情况下,我可以隐藏(View.GONE)或显示该横幅图像视图(View.VISIBLE)。但是问题是,即使我在图像视图xml中设置了android:visibility="visible",横幅图像视图也永远不会在我运行应用程序时显示。

如您所见,我有红色背景的图像视图,但是红色背景图像视图不会显示

如何解决这个问题?

我片段中的布局是这样的

enter image description here

这是xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                                   xmlns:tools="http://schemas.android.com/tools"
                                                   android:layout_width="match_parent"
                                                   android:layout_height="match_parent"
                                                   xmlns:app="http://schemas.android.com/apk/res-auto"
                                                   tools:context=".Fragments.Search.SearchKeywordResultFragment"
                                                   android:id="@+id/constraintLayout_search_keyword_fragment">


    <androidx.recyclerview.widget.RecyclerView
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:scrollbars="vertical"
            tools:listitem="@layout/item_general_event"
            android:id="@+id/recyclerView_keyword_search_result"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"/>

    <ImageView
            android:id="@+id/imageView_banner_search_keyword"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:background="#E91E63"
            android:visibility="visible"
            app:layout_constraintBottom_toBottomOf="@+id/recyclerView_keyword_search_result"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            tools:src="@tools:sample/avatars[3]" />


</androidx.constraintlayout.widget.ConstraintLayout>

5 个答案:

答案 0 :(得分:0)

只需将Recycler的TopToTop约束更改为Image视图的ID,然后将其更改为TopToBottom。 为此,您还需要先声明imageview,以便能够解决其ID。 还要指定横幅宽度:match_parent

<ImageView
        android:id="@+id/imageView_banner_search_keyword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:background="#E91E63"
        android:visibility="visible"
   app:layout_constraintBottom_toBottomOf="@+id/recyclerView_keyword_search_result"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:src="@tools:sample/avatars[3]" />

<androidx.recyclerview.widget.RecyclerView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:scrollbars="vertical"
        tools:listitem="@layout/item_general_event"
        android:id="@+id/recyclerView_keyword_search_result"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="imageView_banner_search_keyword" app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"/>

答案 1 :(得分:0)

我已经用过类似的方法,您可以尝试一下,它可以正常工作

var onSelect = function(e) {
        var a = e.item.innerText;
        console.log(e.item.innerText);
        if(a ==="Tab 1"){
          console.log("Tab 1 selected");
        }


     };

您可以在Viewpager上使用Imageview。

答案 2 :(得分:0)

因为在imageView上有代码行tools:src="@tools:sample/avatars[3]" 工具功能,它将仅在android布局编辑器上显示。 尝试从位图或app:srcCompat="@drawable/{your_drawable_or_mipmap_data_file}"的可绘制对象更改为真实图像

答案 3 :(得分:0)

尝试在ImageView上设置android:adjustViewBounds="true"android:scaleType="fitCenter"

答案 4 :(得分:0)

布局固定。 您的底部回收视图方法存在问题。 您正在使用工具来显示图像,因为您必须使用Java / Kotlin代码设置“图像”,所以它不会在设备或仿真器上显示图像。

imageView.setBackgroundResource(R.drawable.img1)
imageView.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.img1));

或者如果您要获取图像表单服务器,请尝试使用 Glide 或任何其他图像加载器库。

    

    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:scrollbars="vertical"
        tools:listitem="@layout/item_general_event"
        android:id="@+id/recyclerView_keyword_search_result"
        app:layout_constraintBottom_toTopOf="@+id/imageView_banner_search_keyword"
        app:layout_constraintTop_toTopOf="parent" 
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"/>

    <ImageView
        android:id="@+id/imageView_banner_search_keyword"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:background="#E91E63"
        android:visibility="visible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:src="@tools:sample/avatars[3]" />


</androidx.constraintlayout.widget.ConstraintLayout>