我已在for循环中动态添加了一些视图到线性布局
LinearLayout:
<LinearLayout
android:id="@+id/abc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>
使用inflate添加了视图:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_action_icon"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_margin="16dp"/>
<TextView
android:id="@+id/tv_action_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="10dp"
android:layout_toRightOf="@id/iv_action_icon"
android:drawableRight="@drawable/ic_rightgo"
android:textSize="17sp"/>
<View
android:id="@+id/v_line"
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_below="@id/iv_action_icon"
android:layout_toRightOf="@id/iv_action_icon"
android:background="@color/line_grey"/>
</RelativeLayout>
添加的视图有一行(v_line)。我必须在for循环后更改颜色。
我这样做。
View lastView = llGroup.getChildAt(llGroup.getChildCount() -1);
if(lastView != null){
View lineLastView = lastView.findViewById(R.id.v_line);
lineLastView.setBackgroundColor(Color.parseColor("#ff0000"));
}
但是这会改变所有添加视图的行颜色而不是最后一行。