如何制作水平滚动视图?

杀手er

我有一个包含线性布局的水平滚动视图。像这样的东西:

<HorizontalScrollView
    android:fillViewport="true"
    android:id="@+id/product_hsv"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:measureAllChildren="false"
    android:scrollbars="none">

    <LinearLayout
        android:id="@+id/product_container_layout"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:orientation="horizontal" />
</HorizontalScrollView>

我想做的是添加n个相同的布局以在水平滚动视图中显示产品集合。

下图将使您大致了解我到目前为止所做的事情。

预期产量

为此,我已将产品收藏视图添加到R.id.product_container_layout

String[] productCollectionArr = new String[]{"Shirt", "Jewellary", "Moto X Play", "Ellis Flat"};

for (int i = 0; i < productCollectionArr.length; i++) {
    LinearLayout parentLayout = (LinearLayout) findViewById(R.id.product_container_layout);
    View child = getLayoutInflater().inflate(R.layout.item_product, null);//child.xml
    parentLayout.addView(child);
}

for (int i = 0; i < productCollectionArr.length; i++) {
    LinearLayout eachProductLayout = (LinearLayout) findViewById(R.id.product_container_layout);
    ((TextView) eachProductLayout.findViewById(R.id.product_name_tv)).setText(productCollectionArr[i]);
}

但是问题在于传递价值。由于添加到product_container_layout的每个视图都具有相同的ID。因此,只有第一个元素才能从产品集合数组中获取值。

我能做的是为每个视图及其元素生成视图ID,并将这些ID映射到特定名称,以便我可以通过ID访问它们。

这是正确的方法还是我应该做些其他事情?

亚历山大·米哈伊洛夫(Alexander Mikhaylov)

因此,您需要先填充视图,然后再添加到容器或保存指向所有项目的链接。它看起来像这样:

    LinearLayout parentLayout=(LinearLayout)findViewById(R.id.linearLayout1);
for (int i = 0; i < items.size(); i ++) {
    View child = getLayoutInflater().inflate(R.layout.item_grid, null);//child.xml
((TextView) child.findViewById(R.id.name)).setText(items.get(i).getName(); // where R.id.name is a textView in your child.xml layout.
    parentLayout.addView(child);
}

毕竟,如果要更改它,则可以按索引访问元素:

parentLayout.getChildAt(index)

但是,如果您有很多物品,那不是一个好主意。在这种情况下,您将不会回收视图,并且会占用大量内存。我建议使用支持库中的recyclerview

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何制作水平滚动面板或转盘?

来自分类Dev

如何制作水平滚动的导航栏?

来自分类Dev

如何制作水平/垂直滚动动画?

来自分类Dev

如何制作水平滚动面板或转盘?

来自分类Dev

如何获得水平滚动视图的宽度

来自分类Dev

如何在水平滚动视图中显示

来自分类Dev

如何制作弯曲的圆形滚动视图

来自分类Dev

如何制作弯曲的圆形滚动视图

来自分类Dev

如何在水平滚动视图中获取滚动状态:Android

来自分类Dev

水平滚动日历视图

来自分类Dev

水平滚动视图不滚动

来自分类Dev

如何为左上浮的孩子制作水平滚动?

来自分类Dev

如何在SingleChildScroll中制作水平滚动ListView

来自分类Dev

如何在颤动中制作水平滚动动画

来自分类Dev

如何在水平滚动视图中获取位置

来自分类Dev

如何从SWIFT的结束页开始水平滚动视图

来自分类Dev

如何在水平滚动视图中显示所有日期

来自分类Dev

Swift如何同时启用水平和垂直滚动视图

来自分类Dev

如何在多个文本视图Android中水平滚动文本

来自分类Dev

如何在Android中制作可拉伸的滚动视图?

来自分类Dev

如何制作滚动视图,滚动iOS时在特定页面中滚动

来自分类Dev

水平滚动视图检测长按

来自分类Dev

水平滚动视图内的recyclerview

来自分类Dev

水平滚动视图工作异常

来自分类Dev

垂直和水平滚动视图

来自分类Dev

表/集合视图的水平滚动

来自分类Dev

集合视图中的水平滚动

来自分类Dev

水平滚动视图,Android滚动问题

来自分类Dev

如何制作水平ScrollView