Android RecyclerView23.2.0的一点小变化(RecyclerView中Item占一屏解决方案)

来源:互联网 发布:网络推广要学哪些课程 编辑:程序博客网 时间:2024/06/04 20:19

RecyclerView23.2.0中,LayoutManager API 添加了新的特性:自动测量(auto-measurement);

它允许RecyclerView根据内容来控制高度,从此我们就可以实现RecyclerView的高度设置:wrap_content

如:当RecyclerView的Item如下设置

<LinearLayoutxmlns:android=”http://schemas.android.com/apk/res/android"    android:layout_width=”match_parent”    android:layout_height=”match_parent”    android:orientation="vertical">    <ImageView/>    <TextView/></LinearLayout>

在:recyclerview23.1.1 下是如下显示


因为在recycler23.1.1下,RecyclerView的源码如下:

void setRecyclerView(RecyclerView recyclerView) {        if (recyclerView == null) {            mRecyclerView = null;            mChildHelper = null;        } else {            mRecyclerView = recyclerView;            mChildHelper = recyclerView.mChildHelper;        }      } 


在recyclerview23.2.0下是如下下显示

在recyclerView23.2.0下,RecyclerView源码:

void setRecyclerView(RecyclerView recyclerView) {            if (recyclerView == null) {                mRecyclerView = null;                mChildHelper = null;                mWidth = 0;                mHeight = 0;            } else {                mRecyclerView = recyclerView;                mChildHelper = recyclerView.mChildHelper;                mWidth = recyclerView.getWidth();                mHeight = recyclerView.getHeight();            }            mWidthMode = MeasureSpec.EXACTLY;            mHeightMode = MeasureSpec.EXACTLY;        }


如果要在recycler23.2.0下也如同图一显示的那样需要修改Item的属性

<LinearLayoutxmlns:android=”http://schemas.android.com/apk/res/android"    android:layout_width=”match_parent”    android:layout_height=”wrap_content”    android:orientation="vertical">    <ImageView/>    <TextView/></LinearLayout>
如图显示:


资料参考:

http://blog.csdn.net/axuanqq/article/details/51006231

http://m.blog.csdn.net/article/details?id=50947008



0 0
原创粉丝点击