具有 3 列的 ListView - Android

ListView with 3 columns - Android

我想创建包含 3 列的 ListView(所有 3 列都相同)。所以一列是一个 ImageView。为了填充 ListView,我有一个包含图像的数组。

设计应该是这样的:

要填充 ListView,我需要自定义适配器和自定义布局。布局只有 3 张图像 id-s: ivImage1ivImage2ivImage3

我的自定义适配器:

public class Adapter extends BaseAdapter {

    private int[] gallery = {
            R.drawable.cat_321_sofa,
            R.drawable.cat_corner_sofa,
            R.drawable.cat_beds,
            R.drawable.cat_arm_chairs,
            R.drawable.cat_puff,
            R.drawable.cat_coffe_table,
            R.drawable.cat_day_night,
    };

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View row;

        if (convertView == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = inflater.inflate(R.layout.one_gallery_layout, parent, false);
        } else {
            row = convertView;
        }

        ImageView ivImage1 = (ImageView) row.findViewById(R.id.ivImage1);
        ImageView ivImage2 = (ImageView) row.findViewById(R.id.ivImage2);
        ImageView ivImage3 = (ImageView) row.findViewById(R.id.ivImage3);

        ivImage1.setImageResource(); ??????
        ivImage2.setImageResource(); ??????
        ivImage3.setImageResource(); ??????

        return row;
    }

    @Override
    public int getCount() {
        return ????????????
    }

    @Override
    public Object getItem(int position) {
        return 0;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }
}

所以问题是ListView的大小,getCount()的return; ,并在每个 ImageView

上放置图像

我该怎么做,或者这个问题有一些其他的解决方案.....

您将需要使用 GridView, or RecyclerView。这两个组件都允许您创建多个列,这正是您所需要的。我建议使用 RecyclerView,这是未来支持的控件。

标准 ListView 仅限于单列。