2015-12-24 56 views
1

因此,这里是我的活动布局如何响应隐藏/显示布局滚动

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical" 
    <include 
     layout="@layout/signs" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent"/> 

    <android.support.v7.widget.RecyclerView 
      android:layout_height="match_parent" 
      android:layout_width="match_parent" 
      android:id="@+id/rv" 
      android:clipToPadding="false"> 
    </android.support.v7.widget.RecyclerView> 

</LinearLayout> 

signs包括:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="horizontal" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp" 
       android:elevation="4dp"> 


    <ImageView 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:id="@+id/navi_door" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:paddingTop="5dp" 
      android:src="@drawable/door_24"/> 

</RelativeLayout> 

当我滚动的RecyclerView项目清单迹象布局保持当然,在它的地方。这就是为什么我的问题是如何使这个布局也滚动,然后RecyclerView的列表滚动。

回答

2

因为RecyclerView不支持添加页眉/页脚喜欢的ListView,你可以像下面实现这一点:

private class ViewType { 
     public static final int Signs = 1; 
     public static final int Normal = 2; 
} 

然后覆盖getItemViewType

@Override 
public int getItemViewType(int position) { 

    if(items.get(position).isHeader) 
     return ViewType.Signs; 
    else 
     return ViewType.Normal; 

} 

最后覆盖onCreateViewHolder

@Override 
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 

    View rowView; 

    switch (i) 
    {  
     case ViewType.Signs: 
      rowView=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.signs, viewGroup, false); 
      break; 

     default: 
      rowView=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.normal, viewGroup, false); 
      break; 
    } 
    return new ViewHolder (rowView); 
}