Android 获取item宽度
时间: 2024-01-22 20:20:46 浏览: 23
可以通过以下方法获取 RecyclerView 的每个 item 的宽度:
1. 在 RecyclerView 的 Adapter 中重写 `onCreateViewHolder` 方法,在 `ViewHolder` 中获取 item 的根布局,并使用 ViewTreeObserver 监听布局的变化。
```
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
final MyViewHolder holder = new MyViewHolder(itemView);
ViewTreeObserver observer = holder.itemView.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int width = holder.itemView.getWidth(); // 获取 item 宽度
// 在此处进行宽度的处理
holder.itemView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
return holder;
}
```
2. 在 `onGlobalLayout` 回调中获取 item 的宽度,进行相应的处理即可。