안드로이드 개발을 하다 보면 리스트뷰 안에 listview 를 해더로 넣을 경우가 생기는데요
이럴때 스크롤 터치를 잡아줘야 리스트뷰 2개 모두 스크롤이 됩니다. 방법은 requestDisallowInterceptTouchEvent 요것을 true 로 해주면 터치를 잡을 수 있습니다.

아래는 예제 소스 입니다. 참 쉽습니다.

public class NEW_PeopleMain extends Fragment{

    private ListView PeopleList , PeopleHeaderList;
    private View Header;
        
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.new_peoplemain, null);
    }
    
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        
        init();
            
    }
    
    public void init(){
          String str[] = { "line1","line2","line3","line4","line5",
                          "line6","line7","line8","line9","line10"};

         ArrayAdapter<string> adapter = new ArrayAdapter<string>(getActivity() , android.R.layout.simple_list_item_1 , str);

        Header = LayoutInflater.from(getActivity()).inflate(R.layout.new_peopleheader, null);
        PeopleList = (ListView)getActivity().findViewById(R.id.people_list);
        PeopleHeaderList = (ListView)Header.findViewById(R.id.people_hlist2);

        PeopleList.addHeaderView(Header);
        
        PeopleList.setAdapter(adapter);
        PeopleHeaderList.setAdapter(adapter);
        
        PeopleHeaderList.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                PeopleHeaderList.requestDisallowInterceptTouchEvent(true);
                return false;
            }
        });

        
    }
    
}
</string></string>




+ Recent posts