繁体   English   中英

在Recycler-View Viewholder中以相同的布局使用不同的xml

[英]Using different xml in same layouts in recycler-view viewholder

我在Layout文件夹中有多个XML文件,它在一行中有多个点,如何在Recycler-View Viewholder中设置特定布局的特定位置/停靠点的特定布局

请参考

图片

当飞机直飞时,我可以使用它们 这个

布局,如果我的航班是两站,我可以使用 这个 布局

我认为这将有助于检查此处的官方DOC

///如果您不使用图像,则要在设计中很好地使用两个布局文件,这非常简单! 其实

只需创建一个View,就可以说您在其中拥有线性布局! 并且您想根据自己的情况在内部加载视图,则可以像这样

@Override
public void onBindViewHolder(final HomeVuHolder holder, int position) {
    //now all incoming data from the server needed to be


    item = listData.get(position);


    String FlightType = item.getFlightType();

    if (FlightType.equals("1")) {
       View itemInfo1 = getLayoutInflater().inflate(R.layout.item1, holder.flatTypeContainer, true);


    } else if (FlightType.equals("2")) {
        View itemInfo2 = getLayoutInflater().inflate(R.layout.item2, holder.flatTypeContainer, true);

    }
}

在Viewholder类中,您可以这样做,因为

public class HomeVuHolder extends RecyclerView.ViewHolder {
        LinearLayout flatTypeContainer;
        //...... other views

        public HomeVuHolder(View itemView) {
            super(itemView);
            filghtTypeImageView = (LinearLayout) itemView.findViewById(R.id.flatTypeContainer);

        }

}

这也对图像有帮助! 图像对于您来说有点容易! ^ _ ^

在recyclerView构造函数的bindViewholder方法中,您必须从本地资源或任何在线服务器获取图像! 这是如何从本地应用程序资源中获取示例的示例!

@Override
public void onBindViewHolder(final HomeVuHolder holder, int position) {
    //now all incoming data from the server needed to be
    //tightly bound here on the recycler View will be here

    item = listData.get(position);

    String FlightType = item.getFlightType();
    if (PostStatuses.equals("1")) {
        holder.filghtTypeImageView.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_worker_green_24dp));
    } else if (PostStatuses.equals("2")) {
        holder.filghtTypeImageView.setImageDrawable(context.getResources().getDrawable(R.drawable.nonStopImage));

    }
}

视图持有人类将是这样的

public class HomeVuHolder extends RecyclerView.ViewHolder {
        ImageView filghtTypeImageView;
        //...... other views

        public HomeVuHolder(View itemView) {
            super(itemView);
            filghtTypeImageView =  itemView.findViewById(R.id.flightTypeImage);

        }

}

对于服务器存储中的图像,您只需使用Glide或Picasso即可将图像加载到imageView onBindViewHolder中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM