RecyclerView 要实现如上图所示的分割线布局:
xml代码:
`<?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">
<View
android:layout_width="match_parent"
android:id="@+id/itemDevide"
android:background="#f00"
android:layout_height="3px"/>
<TextView
android:layout_width="match_parent"
android:id="@+id/itemTitle"
android:textSize="18sp"
android:text="标题"
android:layout_height="wrap_content" />
<View
android:layout_width="match_parent"
android:id="@+id/itemDevideGone"
android:background="@drawable/background"
android:visibility="gone"
android:layout_height="10px"/>
`
Activity 中代码:
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.textView.setText("position " + position);
if (position == 0){
View v = holder.devide;
ViewGroup.LayoutParams layoutParams = v.getLayoutParams();
layoutParams.height = 30;
layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT;
v.setLayoutParams(layoutParams);
holder.devide.setBackgroundResource(R.drawable.background);
}else {
View v = holder.devide;
ViewGroup.LayoutParams layoutParams = v.getLayoutParams();
layoutParams.height = 10;
layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT;
v.setLayoutParams(layoutParams);
holder.devide.setBackgroundResource(R.color.colorAccent);
}
if (position == 29){
System.out.println("INVISIBLE--------------------");
View v = holder.itemDevideGone;
ViewGroup.LayoutParams layoutParams = v.getLayoutParams();
layoutParams.height = 30;
layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT;
v.setLayoutParams(layoutParams);
v.setBackgroundResource(R.drawable.background);
v.setVisibility(View.VISIBLE);
}
else {
System.out.println("gone--------------------");
View v = holder.itemDevideGone;
ViewGroup.LayoutParams layoutParams = v.getLayoutParams();
layoutParams.height = 0;
layoutParams.width = 0;
v.setLayoutParams(layoutParams);
v.setVisibility(View.GONE);
}
}