动态添加时,所有视图的颜色都会更改

时间:2017-02-09 07:39:46

标签: android view

我已在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"));
}

但是这会改变所有添加视图的行颜色而不是最后一行。

0 个答案:

没有答案