2017-10-10 17 views
0

RecycleViewの各データ項目について、onCreateViewHolderに複合図を追加しています。 データアイテムの値に応じて、右または左に揃える必要があります。RecycleViewアダプタで追加されたビューのレイアウトパラメータを設定する方法は?

その方法でビューのレイアウトパラメータを設定すると、xmlレイアウトファイルの値によって上書きされます。

私が考えることができる唯一の解決策は、2つの異なるレイアウトファイルを持つことですが、不要なファイルを複製します。

コードでこれを達成するにはどうすればよいですか?

更新:下記のコードのonBindViewHolderでも試してみます。

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 

    View v = holder.itemView; 

    //to simplify i try to aling all to the rigth 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_END); //this settins has effect if defined on the layout file 
    v.setLayoutParams(params); 
} 

答えて

0

見つかった。私はholder.itemViewが追加された複合ビューであると仮定しました。コンパウンドビューを取得し、そのビューにパラメータを設定するには、findViewByIdを使用する必要がありました。

View v = holder.itemView.findViewById(android.R.id.content); 

が続いて質問に掲載され、このビューにパラメータを適用します。 だから、解決策は、このようなitemViewからの化合物ビューを見つけることでした。

1

データ項目のデータに従って行うものはonBindViewHolderではなく、onCreateViewHolderで行われるべきです。作成時には、実際にバインドされたデータ、またはバインドされている位置に関係なく、正しいものだけを設定してください。すべてのデータと位置の設定はonBindViewHolderで行われます。

+0

すべて意味がありますが、私はすでにそれを試していて、うまくいきませんでした。 – ByteArtisan

関連する問題