0
私はRecyclerView
を使用しています。そのAdapter
には、各リストアイテムの画像とテキストがCardView
にあります。イメージを変更するすべてのカードのパラメータを表示する
質問:ImageView
の重みをプログラム的に変更したいと思います。
これは、画面の回転で実行されるコードです:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
SquareImageView imgView = (SquareImageView) findViewById(R.id.thumbnail);
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) imgView.getLayoutParams();
lp.weight = 0.1f;
}
}
コードが実行されますが、ただ一枚のカードにしていないすべてのカードの上に。
編集: 私アダプターコードが必要な場合:
// Provide a suitable constructor (depends on the kind of dataset)
public MyAdapter(Context context, RecyclerView recyclerView, LinkedList<CardData> myDataset)
{
mContext = context;
mRecyclerView = recyclerView;
mDataset = myDataset;
}
// Create new views (invoked by the layout manager)
@Override
public ViewHolder onCreateViewHolder(final ViewGroup parent, int viewType)
{
// create a new view
final View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_card_view, parent, false);
final ViewHolder viewHolder = new ViewHolder(view);
view.setOnTouchListener(new View.OnTouchListener() {
private GestureDetector gestureDetector = new GestureDetector(parent.getContext(), new GestureDetector.SimpleOnGestureListener() {
Not Relevant
});
@Override
public boolean onTouch(View v, MotionEvent event)
{
return gestureDetector.onTouchEvent(event);
}});
return viewHolder;
}
// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(ViewHolder holder, int position)
{
CardData currentCard = mDataset.get(position);
holder.mHeadline.setText(currentCard.mHeadline);
}
正確にアダプタにはどこですか? OnBindViewHolderまたはOnCreateViewHolder?ありがとう! – Rani
更新された回答をご覧ください。 –
私はそれを読んだが、アダプタに関連するものは何も見つかりませんでした。さらに、そのような関数resetAdapterはありません。 – Rani