Android Studio Recycler View Interval Error(当运行模拟器时)

xe55xuns  于 11个月前  发布在  Android
关注(0)|答案(1)|浏览(98)

我们使用Recycler View实现了动物医院列表,并使用模拟器执行。但是,如果您按图中所示滚动,则差距会更大。enter image description here
什么样的问题?是布局问题吗?如果你能告诉我答案,我将不胜感激。
对应xml代码:
hospital_design.xml(这是“回收站视图”设计屏幕。)

<RelativeLayout 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">

    <ImageView
        android:id="@+id/listEdit_tv"
        android:layout_width="134dp"
        android:layout_height="91dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_marginStart="2dp"
        android:layout_marginTop="17dp"
        android:layout_marginEnd="260dp"
        android:layout_marginBottom="726dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"
        app:srcCompat="@drawable/nuribom" />

    <TextView
        android:id="@+id/title_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="135dp"
        android:layout_marginTop="23dp"
        android:text="누리봄 동물병원"
        android:textColor="@color/black"
        android:textSize="15dp" />

    <TextView
        android:id="@+id/addr_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/title_tv"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="135dp"
        android:layout_marginTop="54dp"
        android:text="서울특별시 종로구 사직로12길 2" />

    <TextView
        android:id="@+id/phone_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/addr_tv"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="136dp"
        android:layout_marginTop="86dp"
        android:text="02-735-7530" />

    <TextView
        android:id="@+id/guri_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/addr_tv"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_marginTop="86dp"
        android:layout_marginEnd="64dp"
        android:text="491m" />

</RelativeLayout>

字符串
activity_hospital.xml(这是动物医院列表屏幕,您可以在其中看到Recycler视图。)

<RelativeLayout 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">

    <ImageButton
        android:id="@+id/hos_back"
        style="?android:borderlessButtonStyle"
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/baseline_arrow_back_24" />

    <TextView
        android:id="@+id/textView16"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="67dp"
        android:layout_marginTop="13dp"
        android:text="주변 병원"
        android:textColor="@color/black"
        android:textSize="15dp"
        android:textStyle="bold" />

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/hospital_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/hos_back"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentBottom="true"
        android:layout_marginStart="0dp"
        android:layout_marginTop="61dp"
        android:layout_marginEnd="0dp"
        android:layout_marginBottom="4dp" />

</RelativeLayout>


所有的布局都使用了相对布局。如果你能告诉我怎么做,我会很感激的。

ntjbwcob

ntjbwcob1#

RecylerView重复您的列表项布局定义的任何内容。目前,列表项被定义为全屏高度,因此每个项目都全屏显示,因此只有在滚动后才能看到其他项目。您应该将列表项更改为仅采用所需的高度。将hospital_design.xml布局的布局高度更改为wrap_content

<RelativeLayout 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">

字符串
其次,我也看到了一些布局上的问题。

<ImageView
        android:id="@+id/listEdit_tv"
        android:layout_width="134dp"
        android:layout_height="91dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_marginStart="2dp"
        android:layout_marginTop="17dp"
        android:layout_marginEnd="260dp"
        android:layout_marginBottom="726dp" // remove this
        app:srcCompat="@drawable/nuribom"
/>


在这里,你的ImageView你已经从底部给出了保证金,这是不需要的,因为它是相对于顶侧对齐.你应该删除这一点,以及.然后你的列表项将只需要的高度.

相关问题