【问题标题】:Cardview - why each element is painted only until the end of dataCardview - 为什么每个元素只绘制到数据结束
【发布时间】:2017-05-16 11:31:44
【问题描述】:

我有一个 android 应用程序,我在其中一个活动中使用 RecyclerView。

我创建了 CardView 布局和 RecyclerView 布局,然后创建了布局管理器和视图适配器,等等......

我的问题是,为什么它绘制每个元素的背景,只有“一半”,意味着只到单词的结尾。

看看这张照片: https://ibb.co/er9zGQ

我的代码是:

public void onBindViewHolder(MyHolder holder, int position)
{
    holder.nametxt.setText(tasksObj.get(position).getData());
    holder.nametxt.setTextSize(14);
    holder.nametxt.setBackgroundColor(Color.parseColor("#ffff99"));
}

提前致谢!

【问题讨论】:

  • 因为你设置了textview的width:wrap_content,所以设置为匹配父级
  • 简单地说,只需将 wrap_content 的宽度设置为 match_parent。 @ayelet 或将背景颜色设置为您的卡片视图。
  • 向我们展示您的 xml 文件
  • 请出示您的xml文件
  • 我尝试更改以匹配父级,没有修复。

标签: android android-recyclerview


【解决方案1】:

用这个替换你的代码

public void onBindViewHolder(MyHolder holder, int position)
{
    holder.nametxt.setText(tasksObj.get(position).getData());
    holder.nametxt.setTextSize(14);
    holder.itemView.setBackgroundColor(Color.parseColor("#ffff99"));
}

【讨论】:

  • 但是有一个小问题:现在卡片的角是“尖锐的”,而之前它更圆。这不是那么重要,但我更喜欢旧的形状。如何做到这一点>?
【解决方案2】:

因为您已将 wrap-content 设置为您的文本视图,因此如果您必须将背景设置为所有视图,然后将背景设置为您的卡片视图,它只会在您拥有字符时获得宽度:

    holder.yourCardView.setBackgroundColor(Color.parseColor("#ffff99"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2013-05-29
    • 1970-01-01
    相关资源
    最近更新 更多