繁体   English   中英

Android:如何在没有滚动功能的情况下显示列表中的所有项目

[英]Android: How to display all items in a list without scroll functionality

我想显示类似RecyclerView但是大小会根据列表中的项目数量动态变化。 每个项目都显示在该项目的“ View 由于列表视图的高度设置为有多少个项目视图的总高度,因此视图中不需要进行任何滚动。

当前,我正在使用带有setHasFixedSize = falseRecyclerView ,如您在以下代码片段中所见:

recyclerview.apply {
            layoutManager = LinearLayoutManager(rootView.context)
            adapter = PlanAdapter(dateItem.planItems)
            setHasFixedSize(false)
}

在第一个之后没有显示任何项目。 这是我实现它的示例屏幕:

在此处输入图片说明

蓝色亮点显示,这些项目是否在本地存储,而不是由我做了动态RecyclerView所示。 比为此创建一个完整的RecyclerView更好的选择,对吧?

如果您只想禁用回收站的滚动功能,则可以通过编程方式或通过XML来调用android:nestedScrollingEnabled="false"或通过XML来实现。

现在,如果您不想为此使用recyclerview,则可以使用自定义视图来扩展布局,例如

public class AllergenView extends LinearLayout {

    private View rootView;
    private ImageView icon;
    private String allergenTag;
    Activity mActivity;

    public AllergenView(Activity activity, String allergenTag) {
        super(activity);
        this.mActivity = activity;
        this.allergenTag = allergenTag;

        init(activity);
    }

    public AllergenView(Context context, AttributeSet attrs) 
    {
        super(context, attrs);
    }

    private void init(Context context) {

        rootView = inflate(context, R.layout.view_allergen_icon, this);

        // Bind views
        icon = (ImageView) findViewById(R.id.img_icon);
    }

这样叫

for (Allergen a : recipe.getAllergen()) {

                View v1 = new AllergenView(mActivity, Utils.toString(a.getAllergen()));
            holder.linearLayoutHorizontal.addView(v1);

        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM