【问题标题】:Remove space gap between recycler view rows删除回收站视图行之间的空间间隙
【发布时间】:2018-04-11 05:38:03
【问题描述】:

好的,我环顾四周,没有发现关于这个特殊案例的任何信息。

我有一个垂直 recyclerView,在一个线性布局中(所以 android:height 设置为 0dp,以支持权重功能)。此 recyclerView 包含几乎无限的天数列表。当用户滚动时,当前日期(或您想要的行)将其背景更改为透明,以显示它是当前日期。我后来才注意到项目行不适合 recyclerView 给该行的所有空间。 如果您看到图像,一切都会更清晰:我突出显示了一小排,颜色不同(不是白色)。这是recyclerView的背景! 所以,我的问题是,为什么项目布局不适合所有的行空间?

另外:这是recyclerView xml:

   <android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="6.0"
    android:elevation="5dp"
    android:background="@drawable/background_recycler_view_main"/>

这是行:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row_day"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="180dp"
android:background="@color/white">

<View
    android:id="@+id/vertical_row"
    android:layout_width="3dp"
    android:layout_height="match_parent"
    android:background="@color/budget_remains"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="40dp"
    android:layout_marginLeft="40dp"/>

<TextView
    android:id="@+id/day_number0"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/vertical_row"
    android:layout_toEndOf="@id/vertical_row"
    android:layout_marginLeft="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginTop="10dp"
    android:gravity="bottom"
    android:text="@string/day_number_fake"
    android:textColor="@color/day_number_and_name"
    android:textSize="@dimen/day_number" />

<TextView
    style="@style/DayInfoMain"
    android:id="@+id/day_name0"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/day_number0"
    android:layout_marginBottom="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginStart="5dp"
    android:layout_toEndOf="@id/day_number0"
    android:layout_toRightOf="@id/day_number0"
    android:text="@string/day_name_fake" />

<TextView
    style="@style/AmountDayAndExpense"
    android:id="@+id/day_amount0"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/day_name0"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_marginEnd="16dp"
    android:layout_marginRight="16dp"
    android:text="@string/day_amount_fake"
    android:textSize="@dimen/day_text" />

根据要求,background_recycler_view_main:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:type="radial"
    android:startColor="@color/white"
    android:endColor="@color/background_main_component"
    android:gradientRadius="200dp"/>
</shape>

【问题讨论】:

  • 显示background_recycler_view_main代码。
  • 就是这样,但说实话,我不明白为什么这很重要......

标签: android android-studio android-recyclerview


【解决方案1】:

它看起来像不同项目之间的分隔线。 在您创建 Recyclerview 实例的课程中尝试此操作 我假设实例是这样的

Recyclerview mRecyclerView = (Recyclerview) findviewbyId(R.id.recycler_view);

然后在下面添加这一行,使分隔符为空

mRecyclerView.addItemDecoration(new DividerItemDecoration(mContext, LinearLayoutManager.VERTICAL) {
        @Override
        public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
            // Do not draw the divider
        }
    });

【讨论】:

  • 我从来没有使用过 DividerItemDecoration,所以根本没有分隔线。另外,我试过你的代码,但没有效果。
  • 这个答案是否有助于将负边距添加到 recyclerview stackoverflow.com/a/35207851/4204668
【解决方案2】:

高程导致recycler items 出现shadow effect。从回收站视图中删除这行代码

android:elevation="5dp"

【讨论】:

  • 不。移除海拔没有效果。
猜你喜欢
  • 1970-01-01
  • 2016-01-24
  • 2018-05-23
  • 2020-10-16
  • 1970-01-01
  • 2017-04-14
  • 2020-03-14
  • 2016-12-30
  • 2017-09-04
相关资源
最近更新 更多