android - RecyclerView 适配器仅显示第一项

标签 android android-recyclerview

我知道这个问题已被问过很多次,但答案对我不起作用。我正在尝试使用水平放置。这是我的代码:

public class CalendarDaysAdapter extends RecyclerView.Adapter<CalendarDaysAdapter.MyViewHolder> {

    private ArrayList<String> list;

    public CalendarDaysAdapter(ArrayList<String> list)
    {
        this.list = list;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.fragment_calendar_days_item, parent, false);

        return new MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {

        String day = list.get(position);
        holder.daystxt.setText(day);
    }

    @Override
    public int getItemCount() {
        return list.size();
    }


    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView daystxt;

        public MyViewHolder(View view) {
            super(view);
            daystxt = (TextView) view.findViewById(R.id.daystxt);
        }
    }

}

fragment_calendar_days_item xml:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:gravity="center">

        <TextView
            android:id="@+id/daystxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="MON"
            android:textSize="20sp"/>

    </RelativeLayout>


</LinearLayout>

我尝试了 wrap_content - match_parent 的所有组合,也在父 Activity 中的 RecyclerView xml 上,但只显示了第一个项目。我用过断点,看看list的数据有没有,有。

那么我缺少什么?

最佳答案

更改您的 fragment_calendar_days_item 高度和宽度为 android:layout_height="wrap_content" android:layout_width="wrap_content"

它会解决你的问题

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:gravity="center">

        <TextView
            android:id="@+id/daystxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="MON"
            android:textSize="20sp"/>

    </RelativeLayout>


</LinearLayout>

关于android - RecyclerView 适配器仅显示第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47455615/

相关文章:

java - 显示来自非 Activity 类的 toast 。将上下文设置为 toast 的问题

Android match_parent 向后兼容问题不会编译 eclipse

android - Android 的 EventBus 框架

android:animateLayoutChanges 在更改 TextView 的 maxLines 时在 RecyclerView 中不起作用

java - 如何以编程方式更改 RecyclerView 项目属性,特别是 recyclerview 项目内的自定义 View

android - 使用 ItemTouchHelper 滑动到 recyclerView 中的另一个 View

java - 带有 OkHttp3 和 Retrofit2 的 HTTP/2

android - 如何从具有 OS 11 的 Android 设备获取 mac 地址?

android - DiffUtilCallBack 用于搜索或过滤列表时是否需要使用协程暂停 DiffUtilCallBack?

android - recyclerView 的 setOnClickListener 不起作用