java - 我们可以在回收站视图中调整项目高度吗?
问题描述
我们可以调整 recyclerview 中的项目高度(取决于项目内容大小),还是所有 recyclerview 项目必须具有相同的大小?
我的 recyclerview 正在工作,但是当内容太长时,某些内容项会被剪切..
我应该使用 CardView 来做到这一点吗?
这是我的适配器类:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private Vector<String> mDataset;
public static class MyViewHolder extends RecyclerView.ViewHolder {
TextView title;
TextView message;
TextView date;
public MyViewHolder(View v) {
super(v);
title = itemView.findViewById(R.id.title);
message = itemView.findViewById(R.id.message);
date = itemView.findViewById(R.id.date);
}
}
public MyAdapter(Vector<String> myDataset) {
mDataset = myDataset;
}
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
View v = (View) LayoutInflater.from(parent.getContext()).inflate(R.layout.my_text_view, parent, false);
MyViewHolder vh = new MyViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
String[] parts = mDataset.elementAt(position).split(";");
if (parts.length >= 4) {
holder.title.setText(parts[2]);
holder.message.setText(parts[3]);
try {
SimpleDateFormat inputFormat = new SimpleDateFormat("dd-MM-yyyy");
Date currdate = new Date();
Date date = inputFormat.parse(parts[0]);
long diff = currdate.getTime() - date.getTime();
long days = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
if (days == 0)
holder.date.setText(parts[1]);
else
holder.date.setText(parts[0]);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
@Override
public int getItemCount() {
return mDataset.size();
}
}
解决方案
是的,您可以,您需要做的就是使项目布局的父容器wrap_content
处于其高度(或宽度,如果它是水平滚动)。像这样的东西:
list_item_layout
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
<!-- here -->
android:layout_height="wrap_content"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</FrameLayout>
最新的回收器视图库现在可以很好地处理包装内容,并且几乎没有任何错误。
推荐阅读
- reactjs - 为什么 React 道具没有在事件处理程序中更新
- r - 如何编辑 list.file 中的数据框
- python - 如何让 Discord.py 检测大小写单词格式?
- .net - 从 oraclebulkcopy 获取进度条的运行时
- javascript - 使用 AJAX 在我的 HTML 文档中获取 PHP 文件,但其中的脚本不起作用
- multithreading - 为什么 apache spark 在多线程环境中因 org.apache.spark.sql.internal.SessionStateBuilder 异常而失败?
- azure-cosmosdb - 通过一个 Cosmos DB 查询获得多个计数?
- python - Speech_Recognition 连接失败并打印此错误
- vue.js - Nuxt.js - 无法在 Nuxt.js 数组中输出嵌套数组元素
- xcode - 为什么我的设置切断了我对边距的限制?