RecyclerView
の標準実装と組み合わせて新しいを試してLayoutManager
いLinearLayoutManager
ます。私の目標はLayoutManager
、デバイスが縦向きのときにアイテムを水平に描画し、デバイスが横向きのときに垂直に描画できるようにすることです。このために、アクティビティで次のコードを使用しますonCreate
。
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.nextColors);
recyclerView.setAdapter(myAdapter = new MyAdapter(getBaseContext(), myData, myLayout);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
linearLayoutManager.setOrientation(LinearLayout.HORIZONTAL);
} else {
linearLayoutManager.setOrientation(LinearLayout.VERTICAL);
}
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
デバイスが横向きまたは縦向きモードのときにアクティビティを開始すると、これは正常に機能します。しかし、このアクティビティで方向を変更すると、アクティビティが最初に開始されたときのデバイスの方向に応じて、アイテムは常に水平または垂直に描画されます。LayoutManager
デバイスの回転後にアクティビティが再作成され、正しい向きになるはずなので、これは私には意味がありません。
setOrientation
デバイスの向きを変更する方法を知っている人はいますか?