ViewGroup.layout(int l, int t, int r, int b)四个输入参数的含意

Open Declaration void android.view. View.layout(int l, int t, int r, int b)

Assign a size and position to a view and all of its descendants

This is the second phase of the layout mechanism. (The first is measuring). In this phase, each parent calls layout on all of its children to position them. This is typically done using the child measurements that were stored in the measure pass().

Derived classes should not override this method. Derived classes with children should override onLayout. In that method, they should call layout on each of their children.

Parameters:
l Left position, relative to parent
t Top position, relative to parent
r Right position, relative to parent
b Bottom position, relative to parent

            /**
             *  l Left position, relative to parent    控件左边 距离左边的距离
                t Top position, relative to parent            控件上边距离上边的距离
                r Right position, relative to parent   控件右边距离左边的距离
                b Bottom position, relative to parent  控件下面距离上边的距离
             */
           

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在onCreateViewHolder方法中,我们需要根据viewType参数来创建不同类型的ViewHolder。一般情况下,我们会在该方法中使用LayoutInflater.from()方法来加载布局文件,然后使用该View对象来实例化ViewHolder。具体的实现步骤如下: 1. 使用LayoutInflater.from()方法加载item布局文件,例如: ```java View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false); ``` 2. 根据viewType参数来创建不同类型的ViewHolder。如果只有一种类型的item布局,可以直接创建一个ViewHolder实例,例如: ```java MyViewHolder viewHolder = new MyViewHolder(itemView); ``` 如果有多种类型的item布局,可以使用switch语句根据viewType参数来创建不同类型的ViewHolder,例如: ```java switch (viewType) { case TYPE_A: viewHolder = new ViewHolderA(itemView); break; case TYPE_B: viewHolder = new ViewHolderB(itemView); break; default: viewHolder = new ViewHolderC(itemView); break; } ``` 3. 将创建的ViewHolder实例返回,例如: ```java return viewHolder; ``` 完整的onCreateViewHolder方法实现如下: ```java @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { // 加载item布局文件 View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false); RecyclerView.ViewHolder viewHolder; // 根据viewType参数来创建不同类型的ViewHolder switch (viewType) { case TYPE_A: viewHolder = new ViewHolderA(itemView); break; case TYPE_B: viewHolder = new ViewHolderB(itemView); break; default: viewHolder = new ViewHolderC(itemView); break; } // 将创建的ViewHolder实例返回 return viewHolder; } ``` 其中,TYPE_A、TYPE_B、TYPE_C是自定义的常量,用于表示不同类型的item布局。在getItemViewType方法中,需要根据position参数返回对应的viewType类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值