ScrollView는 반드시 하위에 LinearLayout과 같은 레이아웃을 두고 스크롤 시킬 컨트롤 뷰들을 등록해주어야 한다. 아래 예제와 같이 레이아웃의 하위 뷰로 등록될 수도 있지만, 최상위에서 레이아웃을 가지고 전체를 스크롤 시킬수도 있다.

LinearLayout layout = new LinearLayout(this);
layout.setLayoutParams(new RelativeLayout.LayoutParams(
                       LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
layout.setOrientation(LinearLayout.VERTICAL);
                    
ImageView imageView = new ImageView(this);
layout.addView(imageView,
     new android.widget.LinearLayout.LayoutParams(480, 100));
imageView.setImageResource(R.drawable.image01);
                     
ScrollView sv = new ScrollView(this);
sv.setLayoutParams(new RelativeLayout.LayoutParams(
     LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
               
LinearLayout subLayout = new LinearLayout(this);
subLayout.setLayoutParams(new RelativeLayout.LayoutParams(
     LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
subLayout.setOrientation(LinearLayout.VERTICAL);
                     
UserView uv = new UserView(this);             
subLayout.addView(uv,
     new android.widget.LinearLayout.LayoutParams(480, 3000));
                    
sv.addView(subLayout);

                    
layout.addView(sv,
     new android.widget.LinearLayout.LayoutParams(480, 670));
                    
setContentView(layout);

사용자가 임의로 만들어서 사용하는 뷰에서 직접 스크롤 기능을 구현하지 않고도 ScrollView를 이용하면 손쉽게 스크롤 기능을 추가해줄 수 있다.

신고
by 나숑 2010.05.11 10:13