gpt4 book ai didi

Android 布局建议(RecyclerView、ViewPager 和 CardView)

转载 作者:行者123 更新时间:2023-11-30 02:05:36 25 4
gpt4 key购买 nike

我需要一些建议来实现我的 android 应用程序的设计。

我正在使用 RecyclerView 来显示 CardView 的列表。没问题。但是,我需要一个带有 ViewPager 的顶部部分,它显示其他 CardView 水平滑动:

参见 http://i.stack.imgur.com/akg2i.png

我读到 Viewpager 不是很适合放在 RecyclerView 中,所以也许更好的方法是创建一个 ScrollView在里面有一个 ViewPager 然后在下面有一个 RecyclerView 并禁用 RecyclerView 的滚动?

此外,我可以将 ViewPager View 与 CardView 一起使用吗?

编辑:

好的,问题已解决:我尝试使用 fmt.Println.MKO 评论中的这个解决方案

you can do this, define 2 Items types, one for your usual cards, and one for your 2.RecyclerView, with int getItemViewType(int position), you return the specific type. and in onCreateViewHolder(ViewGroup parent, int viewType) you create a viewholder depending on type, either just your card or the 2. RecyclerView

RecyclerView 使用的我的 PostCardAdapter 中:

   @Override
public int getItemViewType(int position) {
RecyclerItem p = items.get(position);
if (p.isHeader){
return TYPE_HEADER;
}
return TYPE_POST;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int type) {
switch (type) {
case TYPE_HEADER:
RecyclerView rv = (RecyclerView) LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.home_header, viewGroup, false);
rv.setHasFixedSize(true);
PostsCardAdapter adapter2 = new PostsCardAdapter(this.headerPosts);
rv.setAdapter(adapter2);
LinearLayoutManager layoutManager = new LinearLayoutManager(viewGroup.getContext(), LinearLayoutManager.HORIZONTAL, false);
rv.setLayoutManager(layoutManager);
return new HeaderViewHolder(rv);

default:
View postView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.post, viewGroup, false);
return new PostsViewHolder(postView);
}

}

onBindViewHolder 中没有什么特别需要为 TYPE_HEADER 做的

只需要应用 scrollTo 方法来像 viewPager 一样工作,并找到一个解决方案来显示一个带有圆圈的组件,指示显示的是哪个项目。

最佳答案

据我了解,您在下方有一个水平 ScrollView 和一个垂直 ScrollView 。

为此,您必须在 Activity/fragment layout.xml 中添加两个 RecyclerView

在您的第一个 RecyclerView 上添加一个水平方向的 LinearLayoutManager 。

您不需要 viewpager。

关于Android 布局建议(RecyclerView、ViewPager 和 CardView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30707968/

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