旋转后的 LinearLayout 跨度

LinearLayout span after rotation

我有一个 RecyclerView 使用 GridLayoutRecyclerView 具有异构布局(我遵循本指南 link),不同之处在于我仅在 recyclerView 之上显示了一些数据 textView。它工作正常,但是当我 旋转 屏幕时,gridlayout 设置了两个或更多 spanstextView 显示在 first span 但我希望 span 将占据屏幕的整个宽度,而不管 spans.

的数量

我应该为此使用 tableLayout 吗?

您需要做的就是在您的 GridLayoutManager 上设置自定义 SpanSizeLookup

    final int numSpans = ...

    // Create a grid layout with numSpans columns
    GridLayoutManager layoutManager = new GridLayoutManager(this, numSpans);

    // Create a custom SpanSizeLookup where the first item spans all columns
    layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            return position == 0 ? numSpans : 1;
        }
    });