Я для прокрутки использую ScrollView.
В методе onCreate:
ScrollView sv = new ScrollView(this);
sv.setFillViewport(true);
LinearLayout lay = new LinearLayout(this);
lay.setOrientation(LinearLayout.VERTICAL);
sv.addView(lay);
//здесь добавляем всё что нужно в лайаут lay
//например 10 кнопок:
int pad = 30;
lay.setPadding(pad, pad, pad, pad);
Button b;
for(int k=0;k<10;++k) {
b = new Button(this);
b.setText("Кнопка "+k);
b.setId(1000+k);
//b.setOnClickListener(ButtonListener);
b.setEnabled(k % 2 == 0);
lay.addView(b);
}
setContentView(sv);