如何在父视图变为可滚动之前停止绘制GridView项?

时间:2011-05-05 15:55:45

标签: java android gridview viewflipper

我正在尝试使用ViewFlipper填充GridView,但具有分页功能而不是滚动功能。 GridView将填写单个“页面”(一个完整页面而不滚动),并开始使用数据集的下一位填写ViewFlipper中的下一个视图。

我需要动态填充页面,因为屏幕尺寸会有所不同。这个GridView支持带有getView()覆盖的自定义适配器类,所以我认为最优雅的解决方案是在GridView中正常绘制视图,但这是我运行的地方陷入困惑:

两件事:

如何告诉getView()函数将GridView项目写入View中的下一个ViewFlipper?通过这个标记,我怎么知道当滚动条弹出之前屏幕填充的时间(我不想要可滚动列表,这是使用ViewFlipper的全部要点)。

还是有一个更好的解决方案,我还没有找到?我无法在API演示中找到一个示例,除了这一点,这里有一些关于stackoverflow的信息,这让我开始了,但我仍然需要上述两个建议来使这个解决方案有效(除非有更好的东西):Android ViewFlipper not flipping

GridView适配器:

// custom adapter made for the GridView
public class ButtonAdapter extends BaseAdapter {
    private Context mContext;
    private List<Map<String, String>> mData;
    private int mLayout;

    public ButtonAdapter(Context c, int layout, List<Map<String, String>> list) {
        this.mContext = c;
        this.mData = list;
        this.mLayout=layout;
    }

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

    public Object getItem(int position) {
        return mData.get(position);
    }

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

    public View getView(int position, View convertView, ViewGroup parent) {
        Button btn = null;

        if(convertView==null) {
            convertView = inflater.inflate(this.mLayout, null);
        }

        btn = (Button)convertView.findViewById(R.id.grid_btn);
        if(btn != null) {
            //btn.setPadding(8,8,8,8);
            btn.setText(mData.get(position).get("label"));
            btn.setId(position);
        }

        return convertView;
    }
}

0 个答案:

没有答案