如何动态更改cardview边框颜色?

时间:2017-04-03 18:17:00

标签: android xml android-recyclerview cardview

我想根据内容更改cardview的边框颜色。是否可以通过recyclerview适配器以某种方式获取xml文件并更改颜色?

2 个答案:

答案 0 :(得分:0)

  

来自recyclerview适配器的xml文件并更改颜色?

没有。 XML是只读的。你不需要触摸它,但使用i.f. findViewById(),找到您的卡片视图,并使用其方法更改颜色。

答案 1 :(得分:0)

使用Databinding库可以实现这一点 假设您的内容为User,如果他/她是成人或儿童,您需要更改CardView的颜色。因此,您可以像这样传递Activity或Fragment中的对象:

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
   User user = new User("Test", "User");
   binding.setUser(user);
}

然后,在data文件中添加XML标记和变量:

<layout xmlns:android="http://schemas.android.com/apk/res/android">
   <data>
       <variable name="user" type="com.example.User"/>
   </data>

   <android.support.v7.widget.CardView
     android:background="@{user.isAdult ? @color/yellow : @color/gray }"
       android:layout_width="match_parent"
       android:layout_height="match_parent">
       <TextView android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@{user.firstName}"/>
   </android.support.v7.widget.CardView>
</layout>

如果您想了解更多信息,请查看文档:{​​{3}}