我的人像布局有一个RecycleView,只显示联系人的名字和姓氏。
我想说明当我将方向更改为横向时,RecycleView现在会显示名字,姓氏,电话号码和图片。这需要我告诉适配器方向已经改变,以便初始化更多的新视图(如在纵向模式下没有的imageview),而不是在纵向模式下完成,因此如何捕获方向并告诉适配器如何初始化?
我已经创建了横向xml文件,我只需要在横向视图中使用适配器进行初始化,那么如何捕获此事件?
答案 0 :(得分:0)
检查屏幕方向(请参阅here)并设置两个ViewHolders。
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
int orientationLand = context.getResources().getBoolean(R.bool.is_landscape)
if (orientationLand) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_land , parent, false);
return new ViewHolderLand(v);
}
else {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_port, parent, false);
return new ViewHolderPort(v);
}
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof ViewHolderPort) {
ViewHolderPort holderPort = (ViewHolderPort) holder;
// Initialize views
} else if (holder instanceof ViewHolderLand) {
ViewHolderLandholderLand = (ViewHolderLand) holder;
// Initialize views
}
}