簡體   English   中英

錯誤 java.lang.ArithmeticException:除以零

[英]Error java.lang.ArithmeticException: divide by zero

我需要為我的應用程序創建一個SpannedGridLayoutManager ,但是當我啟動它時,會出現錯誤:

java.lang.ArithmeticException:除以零。

如果你把SpannedGridLayoutManager.Orientation.VERTICAL然后元素將不會顯示。 我嘗試使用LinearLayoutManager ,一切都得到了很好的反映。

val user = list[position]
        val list = ArrayList<String>()
for (p in user) {
            if (p.photo!= null && p.photo!="")
                list.add(p.photo!!)
}

val spannedGridLayoutManager = SpannedGridLayoutManager(
                orientation = SpannedGridLayoutManager.Orientation.VERTICAL,
                spans = 4)
        mAdapter = Adapter()
        spannedGridLayoutManager.spanSizeLookup = SpannedGridLayoutManager.SpanSizeLookup{
            SpanSize(2, 2)
        }
        holder.view.rec_im.adapter = mAdapter
        holder.view.rec_im.layoutManager = spannedGridLayoutManager
        mAdapter.update(activity, context, list)

適配器

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val photo = list[position]
            Picasso.get().load(photo).into(holder.view.image2)
    }

圖書館鏈接: https://github.com/Arasthel/SpannedGridLayoutManager

試試下面的方法

 recyclerView.setLayoutManager(getGridLayoutManager());

private GridLayoutManager getGridLayoutManager() {

    final GridLayoutManager manager = new GridLayoutManager(getActivity(), 2);
    manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {

            if (categoryList != null && categoryList.size() % 2 == 0) {

                return 1;

            } else if (categoryList != null && position == (categoryList.size() - 1)) {

                return 2;

            } else {

                return 1;
            }
        }
    });
    return manager;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM