2017-04-03 16 views
0

私は、contentに基づいて私のcardviewの境界線の色を変更したいと思います。それは、recyclerviewアダプタから何とかXMLファイルに到達し、色を変更することは可能ですか?どのようにしてカードビューの境界線の色を動的に変更できますか?

+0

希望の状態のスクリーンショットを投稿してください。あなたは 'setCardBackgroundColor'でCardView * background *の色を付けることができます。しかし、境界を着色するための直接的な手段はありません。 –

答えて

0

xmlファイルをrecyclerviewアダプタから取り出して色を変更しますか?

いいえ、XMLは読み取り専用です。そして、あなたはそれに触れる必要はありませんが、i.fを使用してください。 findViewById()で、あなたのカードビューを見つけ、その方法を使って色を変更します。

+0

次に、私の質問を修正したいと思います。カードビューに色付きの枠線のみを設定するにはどうすればいいですか?この場合、どのメソッドを使用する必要がありますか? Btwあなたの答えをありがとう。 –

0

これは、Databindingライブラリを使用することによって可能です。
コンテンツがUserで、大人または子供の場合はCardViewの色を変更する必要があるとします。 、あなたが詳細をお知りになりたい場合

<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> 

:だから、このようなあなたの活動や断片でオブジェクトを渡すことができます。

@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); 
} 

そして、あなたのXMLファイルにdataタグと変数を追加しますドキュメントを確認してください:https://developer.android.com/topic/libraries/data-binding/index.html?hl=pt-br

関連する問題