gpt4 book ai didi

Android Material View Pager GridView 布局设计不正确

转载 作者:太空狗 更新时间:2023-10-29 14:07:44 25 4
gpt4 key购买 nike

我正在尝试使用 this 实现 Material View 寻呼机.寻呼机工作正常。但我需要的是 View 寻呼机下的卡片网格布局,如 this .

但是我正在使用 GridLayoutManager 并且最终会得到类似 this 的结果.谁能帮我重新调整一下。

这是我的代码:内部回收 View fragment :

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Calling the RecyclerView
mRecyclerView = (RecyclerView)view.findViewById(R.id.recyclerView);
mRecyclerView.setHasFixedSize(true);


mLayoutManager = new GridLayoutManager(context, 2);
mRecyclerView.setLayoutManager(mLayoutManager);
mAdapter = new RecyclerViewMaterialAdapter(new GridAdapter(context, mContentItems));
mRecyclerView.setAdapter(mAdapter);

MaterialViewPagerHelper.registerRecyclerView(getActivity(), mRecyclerView, null);
}

在 GridAdapter 内部:

public class GridAdapter  extends RecyclerView.Adapter<GridAdapter.ViewHolder> {

List<CommonCategoryItem> mItems;
Context context;
public GridAdapter(Context context,ArrayList<CommonCategoryItem> list) {
super();
mItems = new ArrayList<>();
mItems = list;
this.context = context;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
final View view= LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.list_item_card_small, viewGroup, false);

return new ViewHolder(view);
}

@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {

CommonCategoryItem item = mItems.get(i);
viewHolder.title.setText(item.getTitle());
int resId = ImageHelper.getResourceId(context,mItems.get(i).getImage());
if(resId!=0)
{viewHolder.imageView.setImageResource(resId);}

}

@Override
public int getItemCount() {

return mItems.size();
}


public static class ViewHolder extends RecyclerView.ViewHolder {

public ImageView imageView;
public TextView title;
public CardView cardView;

public ViewHolder(View itemView) {
super(itemView);
imageView = (ImageView)itemView.findViewById(R.id.img_thumbnail);
title = (TextView)itemView.findViewById(R.id.title);
cardView = (CardView)itemView.findViewById(R.id.smallCardView);
}
}

}

还需要一个 onclick 监听器,以便在每个 gridview 项目单击时移动到不同的 fragment 。我无法获得 child 的位置。谁能帮帮我。

最佳答案

以防其他人将来像我一样遇到这个问题:解决这个问题的“正确”方法,定义如下:https://github.com/florent37/MaterialViewPager/issues/179是在设置适配器时声明网格中的列数:

adapter = new RecyclerViewMaterialAdapter(new albumadapter(getActivity(), items),NUMBER_OF_COLUMNS);

希望对您有所帮助。

关于Android Material View Pager GridView 布局设计不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31655030/

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