RecycleView方向更改

时间:2018-05-18 16:26:35

标签: android

我的人像布局有一个RecycleView,只显示联系人的名字和姓氏。

我想说明当我将方向更改为横向时,RecycleView现在会显示名字,姓氏,电话号码和图片。这需要我告诉适配器方向已经改变,以便初始化更多的新视图(如在纵向模式下没有的imageview),而不是在纵向模式下完成,因此如何捕获方向并告诉适配器如何初始化?

我已经创建了横向xml文件,我只需要在横向视图中使用适配器进行初始化,那么如何捕获此事件?

1 个答案:

答案 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
    }
}