1

に を入力しようとしていViewFlipperますGridViewが、スクロールではなくページング機能を使用しています。はGridView1 つの「ページ」(スクロールなしの 1 つの完全なページ) に入力しViewFlipper、データ セットの次のビットで次のビューの入力を開始します。

画面サイズはさまざまであるため、ページを動的に埋める必要があります。これはオーバーライドを使用GridViewしてカスタム アダプター クラスをgetView()サポートするため、最もエレガントな解決策は で通常どおりビューを描画することだと考えていましたGridViewが、ここで混乱が生じます。

2つのこと:

の次のアイテムにgetView()書き込むように関数に指示するにはどうすればよいですか? そして、そのトークンによって、スクロールバーがポップアップする直前に画面がいっぱいになったときをどのように知ることができますか (スクロール可能なリストは必要ありません。GridViewViewViewFlipperViewFlipper

それとも、私がまだ見つけていないより良い解決策がありますか? APIデモで例を見つけることができず、これを除いてstackoverflowに関するほとんど情報が見つかりませんでしたが、このソリューションを機能させるには上記の2つの提案が必要です(何か良いものがない限り):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;
    }
}
4

0 に答える 0