观看者可点击区域的底部未定义边距

问题描述

问题出在这里-

enter image description here

这是我的ViewHolder代码-

<?xml version="1.0" encoding="utf-8"?>
<layout>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/groups_list_root_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:drawable/list_selector_background"
        android:clickable="true"
        android:focusable="true"
        android:orientation="horizontal"
        android:padding="10dp">

        <ImageView
            android:id="@+id/groups_list_group_image"
            android:layout_width="60dp"
            android:layout_gravity="center"
            android:layout_height="60dp"
            tools:src="@drawable/multi_user_group" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="14dp"
            android:layout_gravity="center"
            android:orientation="vertical">

            <TextView
                android:id="@+id/groups_list_group_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@color/black"
                android:textSize="16sp"
                tools:text="galipoly 38 Apt" />

            <TextView
                android:id="@+id/groups_list_group_members"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ellipsize="end"
                android:maxEms="15"
                android:maxLines="1"
                tools:text="Alon Shlider,Dekel Aslan,Omer..."
                android:textColor="@color/colorPrimary"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/groups_list_group_open_tasks"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                tools:text="9 Open Tasks"
                android:textColor="@color/orange"
                android:textSize="16sp" />

        </LinearLayout>

    </LinearLayout>

</layout>

class GroupsListViewHolder(private val binding: GroupsListViewHolderBinding) : RecyclerView.ViewHolder(binding.root) {

    fun bind(model: GroupModel,onClick: (model: GroupModel) -> Unit) {
        binding.groupsListGroupName.text = model.groupName
        binding.groupsListGroupMembers.text = TextUtils.join(",",model.usersFullNames)
        if (model.tasksCounter < 1) {
            binding.groupsListGroupOpenTasks.setAsGone()
        } else {
            binding.groupsListGroupOpenTasks.setAsVisible()
            binding.groupsListGroupOpenTasks.text = model.tasksCounter.toString()
                .plus(" ")
                .plus(TeamitApplication.context!!.getString(R.string.ongoing_tasks))
                .plus(TeamitApplication.context!!.getString(R.string.dot))
        }
        if (model.usersFullNames.size == 1) {
            binding.groupsListGroupImage.setimageResource(R.drawable.single_user_group)
        } else {
            binding.groupsListGroupImage.setimageResource(R.drawable.multi_user_group)
        }
        binding.groupsListRootLayout.setonClickListener {
            onClick(model)
        }
    }
}

private fun initAdapter() {
        fetchGroupData { groupModelList ->
            if (groupModelList.isEmpty()) {
                binding.groupsListNoGroupsMessageTitle.setAsVisible()
                binding.groupsListNoGroupsMessageDescription.setAsVisible()
                return@fetchGroupData
            }
            binding.groupsListNoGroupsMessageTitle.setAsGone()
            binding.groupsListNoGroupsMessageDescription.setAsGone()
            adapter.submitList(null)
            adapter.submitList(groupModelList)
            binding.groupsListRecyclerview.setAdapterWithItemdecoration(requireContext(),adapter)
        }
    }

fun <T,VH : RecyclerView.ViewHolder> RecyclerView.setAdapterWithItemdecoration(context: Context,adapter: listadapter<T,VH>) {
    this.adapter = adapter
    this.setHasFixedSize(true)
    this.layoutManager = linearlayoutmanager(context)
    this.addItemdecoration(DividerItemdecoration(context,DividerItemdecoration.VERTICAL))
}

如您所见,点击区域的底部有一些空白,我不明白为什么会这样。有时会发生,有时却不会,我无法弄清楚出了什么问题。

关于我正在使用的扩展功能-我正在整个应用程序中使用它

解决方法

在您的第一个LinearLayout中,您已经定义了android:padding="10dp"。我认为这会导致不必要的利润。