From dc7cebf5ec1bb91e388bc5c844424402fba8fc61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B2=BB=E8=B0=8B?= <513500085@qq.com> Date: Sat, 6 May 2017 11:15:21 +0800 Subject: [PATCH] =?UTF-8?q?-=20RcvAdapterWrapper=20Header=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=A8=AA=E5=90=91=20LayoutManager=20-=20=E6=94=B9?= =?UTF-8?q?=E5=8F=98RcvAdapterItem=20=E7=9A=84=E6=9D=83=E9=99=90=E4=B8=BA?= =?UTF-8?q?=20public?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/kale/adapter/CommonRcvAdapter.java | 2 +- .../java/kale/adapter/RcvAdapterWrapper.java | 25 +++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/adapter/src/main/java/kale/adapter/CommonRcvAdapter.java b/adapter/src/main/java/kale/adapter/CommonRcvAdapter.java index d932e32..dfdca53 100644 --- a/adapter/src/main/java/kale/adapter/CommonRcvAdapter.java +++ b/adapter/src/main/java/kale/adapter/CommonRcvAdapter.java @@ -149,7 +149,7 @@ public int getCurrentPosition() { // 内部用到的viewHold /////////////////////////////////////////////////////////////////////////// - static class RcvAdapterItem extends RecyclerView.ViewHolder { + public static class RcvAdapterItem extends RecyclerView.ViewHolder { protected AdapterItem item; diff --git a/adapter/src/main/java/kale/adapter/RcvAdapterWrapper.java b/adapter/src/main/java/kale/adapter/RcvAdapterWrapper.java index 1ea8231..620d116 100644 --- a/adapter/src/main/java/kale/adapter/RcvAdapterWrapper.java +++ b/adapter/src/main/java/kale/adapter/RcvAdapterWrapper.java @@ -242,19 +242,28 @@ public int getFooterCount() { private void setFullSpan(@Nullable View view, RecyclerView.LayoutManager layoutManager) { if (view != null) { - final int itemHeight = view.getLayoutParams() != null ? - view.getLayoutParams().height : RecyclerView.LayoutParams.WRAP_CONTENT; + int itemWidth = view.getLayoutParams() != null ? + view.getLayoutParams().height : RecyclerView.LayoutParams.WRAP_CONTENT; + int itemHeight = view.getLayoutParams() != null ? + view.getLayoutParams().height : RecyclerView.LayoutParams.WRAP_CONTENT; if (layoutManager instanceof StaggeredGridLayoutManager) { + if (((StaggeredGridLayoutManager) layoutManager).getOrientation() == LinearLayoutManager.VERTICAL) { + itemWidth = ViewGroup.LayoutParams.MATCH_PARENT; + } else { + itemHeight = ViewGroup.LayoutParams.MATCH_PARENT; + } StaggeredGridLayoutManager.LayoutParams layoutParams = - new StaggeredGridLayoutManager.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, itemHeight); + new StaggeredGridLayoutManager.LayoutParams(itemWidth, itemHeight); layoutParams.setFullSpan(true); view.setLayoutParams(layoutParams); - } else if (layoutManager instanceof GridLayoutManager - || layoutManager instanceof LinearLayoutManager) { - view.setLayoutParams(new RecyclerView.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, itemHeight)); + } else if (layoutManager instanceof LinearLayoutManager) { + if (((LinearLayoutManager) layoutManager).getOrientation() == LinearLayoutManager.VERTICAL) { + itemWidth = ViewGroup.LayoutParams.MATCH_PARENT; + } else { + itemHeight = ViewGroup.LayoutParams.MATCH_PARENT; + } + view.setLayoutParams(new RecyclerView.LayoutParams(itemWidth, itemHeight)); } notifyDataSetChanged(); }