본문 바로가기

Android

안드로이드 스크롤뷰 안에 리스트뷰 넣기

전체 화면이 스크롤 되고 그안에 리스트뷰가 있는 경우 이벤트가 중복되어 리스트뷰가 스크롤 되지 않는데

구글신을 찾아보니 스크롤 뷰 안에 리스트뷰를 넣고 터치이벤트를 조정하여 리스트뷰 스크롤이 가능한 방법이 

있어서 포스팅 한다.

우선 아래와 같이 레이아웃을 구성 하고 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<ScrollView
    android:id="@+id/scroll_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true" >

      <ListView
           android:id="@+id/list"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:divider="@drawable/list_divider"
           android:dividerHeight="1dp" >
      </ListView>

</ScrollView>

아래와 같이 리스트뷰에 터치리스너를 달아주면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private ListView mList_Lv;
private ScrollView mScroll_Sv;

private void iNit(){
     mScroll_Sv = (ScrollView)findViewById(R.id.scroll_view);
     mList_Lv = (ListView) findViewById(R.id.list);


     mList_Lv.setOnTouchListener(new OnTouchListener() {
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			mScroll_Sv.requestDisallowInterceptTouchEvent(true);
			return false;
		}
	  });
}