>source

recyclerview 내부의 요소에 대해 여백이 작동하지 않는 이유는 무엇입니까? 나는 문제에 대한 해결책을 찾았지만 내 경우에는 아무것도 작동하지 않았습니다. 변경 사항은 Android 스튜디오에 표시되지만 에뮬레이터에는 표시되지 않습니다.

그러나 recyclerview에 여백을 추가하면 요소가 왼쪽/위/오른쪽으로 이동합니다. 그러나 나는 요소 사이의 거리를 만들 수 없습니다.

지금은 다음과 같습니다.

layout_file.xml:

<?xml version="1.0" encoding="utf-8"?>
<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="@drawable/radius"
    android:layout_marginTop="90dp"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp"
    android:layout_marginBottom="-80dp">
    <ImageView
        android:id="@+id/items"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_marginStart="166dp"
        android:layout_marginLeft="166dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView"
        app:srcCompat="@drawable/items"
        tools:srcCompat="@tools:sample/avatars" />
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginStart="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="15dp"
        android:layout_marginEnd="251dp"
        android:layout_marginRight="251dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.333"
        app:srcCompat="@drawable/ic_launcher_background" />
    <TextView
        android:id="@+id/myText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="50dp"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="82dp"
        android:text="Description"
        android:textColor="#000000"
        android:textSize="26sp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0" />
    <TextView
        android:id="@+id/myText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="51dp"
        android:layout_marginLeft="51dp"
        android:layout_marginBottom="60dp"
        android:text="Title"
        android:textColor="#000000"
        android:textSize="19sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toEndOf="@+id/imageView"
        app:layout_constraintTop_toBottomOf="@+id/title"
        app:layout_constraintVertical_bias="1.0" />
    <ImageView
        android:id="@+id/qr"
        android:layout_width="24dp"
        android:layout_height="24dp"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginEnd="5dp"
        android:layout_marginRight="5dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.148"
        app:layout_constraintStart_toEndOf="@+id/items"
        app:srcCompat="@drawable/qr_code"
        tools:srcCompat="@tools:sample/avatars" />
</androidx.constraintlayout.widget.ConstraintLayout>

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
    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:id="@+id/drawer_layout"
    tools:context=".MainActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <include
            layout="@layout/main_toolbar" />
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rv2"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
    <RelativeLayout
        android:layout_width="300dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/white">
        <include layout="@layout/main_nav_drawer" />
    </RelativeLayout>
</androidx.drawerlayout.widget.DrawerLayout>


  • 답변 # 1

    재활용 목록 항목 사이에 간격을 추가하는 데 일반적으로 권장되는 방법은 DividerItemDecoration .

    mDividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),
        mLayoutManager.getOrientation());
    recyclerView.addItemDecoration(mDividerItemDecoration);
    
    

    그런 다음 원하는 간격으로 드로어 블 (투명 할 수 있음)을 추가 할 수 있습니다.

    Drawable mySpacer = ....;
    mDividerItemDecoration.setDrawable(mySpacer);
    
    

  • 답변 # 2

    패딩으로 할 수 있습니다.

    처럼 :

    android:padding="10dp"
    
    

관련 자료

  • 이전 python - 하나의 데이터 프레임 열을 여러 열로 분할하는 방법
  • 다음 php - laravel과 mysql에서 1 년 동안 매월 총 값을 구분하는 방법은 무엇입니까?