Я пытаюсь заполнить ViewFlipper
GridView
, но с возможностью подкачки, а не прокрутки. GridView
заполнит одну "страницу" (одну полную страницу без прокрутки) и начнет заполнять следующий просмотр в ViewFlipper
следующим битом набора данных.
Мне нужно динамически заполнять страницы, так как размеры экрана будут меняться. Это GridView
спортивный класс адаптера с переопределением getView()
, поэтому я подумал, что наиболее элегантным решением было бы нарисовать представление как нормальное в GridView
, но здесь я столкнулся с некоторой путаницей:
Две вещи:
Как я могу сказать функции getView()
записать элементы GridView
в следующий View
в ViewFlipper
? И по этому признаку, как я могу знать, когда экран заполняется незадолго до того, как появляется полоса прокрутки (я не хочу прокручиваемых списков, что было целым смыслом использования ViewFlipper
).
Или есть лучшее решение, которое я просто еще не нашел? Я не смог найти пример в демоверсиях API и небольшую информацию здесь о stackoverflow, кроме этого, который заставил меня начать, но мне все еще нужны два вышеупомянутых предложения, чтобы это решение работало (если нет чего-то лучшего): Android ViewFlipper не переворачивается
Адаптер 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;
}
}