0

我有一个 GridView 有四列,在每个项目上我添加了我的库背景(一个架子样式的),但问题是,在最后一行如果少于四个项目,背景只到最后一个项目,我需要它填充行,我该怎么做?

这是我的实际代码:

public class LibraryGridView extends GridView {
    private LibraryActivity activity;

    public LibraryGridView(LibraryActivity activity) {
        super(activity);
        setBackgroundColor(Color.rgb(223, 223, 223));

        this.activity = activity;

        setNumColumns(activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE ? 6 : 4);
    }

    public void setData(List<LibraryItem> books) {
        setAdapter(new BookAdapter(getContext(), books));
    }

    private class BookAdapter extends ArrayAdapter<LibraryItem> {
        private List<LibraryItem> books;

        public BookAdapter(Context context, List<LibraryItem> books) {
            super(context, 0, books);
            this.books = books;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            BookGridView view = null;

            if (convertView == null)
                view = new BookGridView(activity);
            else
                view = (BookGridView) convertView;

            view.setBackgroundResource(R.drawable.background_grid);
            view.loadStateFrom(getItem(position));

            return view;
        }

        public LibraryItem getItem(int id) {
            return books.get(id);
        }

        public int getCount() {
            return books.size();
        }

        public long getItemId(int position) {
            return position;
        }
    }
}
4

1 回答 1

1

我认为您必须add empty item at the last of private List<LibraryItem> books in multiple of 4然后将其传递给数组适配器,因此您的列表包含 (n%4 = 0) 项。

这里使用 4 是因为您的 gridview 有 4 列。

谢谢。

于 2011-10-24T18:12:59.053 回答