超快和輕松為RecyclerView添加頭部:RecyclerViewHeader

jopen 9年前發布 | 661K 次閱讀 Android開發 移動開發 RecyclerViewHeader

超快和簡便地方式為Android RecyclerView添加頭部。調用簡單的代碼就可以為LinearLayoutManager,GridLayoutManager ,StaggeredGridLayoutManager布局的RecyclerView添加header。

運行效果:

超快和輕松為RecyclerView添加頭部:RecyclerViewHeader

使用說明:


有兩種使用RecyclerViewHeader的方法:

普通方法

(使用起來非常簡單,但是它會添加額外的布局,因此效率略低于第二種方法):

為header創建一個xml布局(可以包括任意view或者ViewGroup)

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="100dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="header"/>

</FrameLayout>

使用靜態初始方法從xml中創建RecyclerViewHeader

RecyclerViewHeader header = RecyclerViewHeader.fromXml(context, R.layout.header);

將RecyclerViewHeader Attach 到RecyclerView,搞定!

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
// set LayoutManager for your RecyclerView
header.attachTo(recyclerView);

Header-already-aligned approach (不會引入任何額外布局):

將RecyclerViewHeader布局放在RecyclerView的上層。

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|top" />

    <com.bartoszlipinski.recyclerviewheader.RecyclerViewHeader
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_gravity="center_horizontal|top">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="header"/>

    </com.bartoszlipinski.recyclerviewheader.RecyclerViewHeader>

</FrameLayout>

獲得RecyclerViewHeader對象:

RecyclerViewHeader header = (RecyclerViewHeader) findViewById(R.id.header);

把RecyclerViewHeader賦予RecyclerView

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
// set LayoutManager for your RecyclerView
header.attachTo(recyclerView, true);

注意事項

RecyclerViewHeader必須在RecyclerView設置了LayoutManager之后調用。

目前該庫適用于LinearLayoutManager,GridLayoutManager和StaggeredGridLayoutManager布局的RecyclerViews。

只支持垂直布局LayoutManager


超快和輕松為RecyclerView添加頭部:RecyclerViewHeader


如果你打算在RecyclerView中使用setOnScrollListener(...)方法,確保在setOnScrollListener(...)的attachTo(...)方法之前使用。

導入項目

 build.gradle

dependencies {
    compile 'com.bartoszlipinski.recyclerviewheader:library:1.2.0'
}

項目主頁:http://www.baiduhome.net/lib/view/home/1434422599926

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!