gpt4 book ai didi

android - RecyclerView 网格布局管理器 : change column width

转载 作者:行者123 更新时间:2023-12-05 07:49:39 29 4
gpt4 key购买 nike

我有一个 RecyclerView 和一个 GridLayoutManager。列宽相等,但我希望第一列的宽度为 80dp。这可能吗?

Example: RecyclerView width 5 columns

final columnsCount = 5;

recyclerView.width = 500dp

column0.width = 80dp

column 1-2-3-4 width = (recyclerview.width - column0.width) / columnsCount

enter image description here

有什么建议吗?

编辑:代码

public class TestRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int VIEW_TYPE_START = 0;
private static final int VIEW_TYPE_PROGRESS_ITEM = 1;
private LayoutInflater inflater;

public TestRecyclerViewAdapter(Context context) {
this.inflater = LayoutInflater.from(context);
}

@Override
public int getItemViewType(int position) {
if (position == 0) {
return VIEW_TYPE_START;
} else {
return VIEW_TYPE_PROGRESS_ITEM;
}
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final View view;
switch (viewType) {
case VIEW_TYPE_START:
view = this.inflater.inflate(R.layout.view_item_small, parent, false);
return new TestViewHolder(view);
case VIEW_TYPE_PROGRESS_ITEM:
view = this.inflater.inflate(R.layout.view_item, parent, false);
return new TestViewHolder(view);
}
return null;
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
}

@Override
public int getItemCount() {
return 5;
}
}

view_item.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0000FF"
android:orientation="vertical">

view_item_small.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dp"
android:layout_height="match_parent"
android:background="#FF0000"
android:orientation="vertical">

用法:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
recyclerView.setAdapter(new TestRecyclerViewAdapter(this));
recyclerView.setLayoutManager(new GridLayoutManager(this, 5));
}

最佳答案

在你的适配器中你可以做到这一点。

检查项目的位置是否等于 0,如果是,则将布局扩展为 80dp 宽度。

关于android - RecyclerView 网格布局管理器 : change column width,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37118438/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com