xml이 아닌 java파일에서 ScrollView와 HorizontalScrollView 를 사용하려고 합니다.
상하와 좌우 모두 스크롤이 필요한 상황이고 xml에서 구현이 쉽지않아 java코딩으로 진행중입니다.
스크롤은 상하좌우 키로 하지 않고 화면의 터치와 드래그로 동작하도록 하려합니다.
아래는 우선 Vertical Scroll 을 하기 위해서 VerticalScroll.java 파일입니다.
package javaroid.guido;
import android.content.Context;
import android.view.MotionEvent;
import android.widget.ScrollView;
public class VerticalScroll extends ScrollView {
public VerticalScroll(Context context){
super(context);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
return false;
}
}
그리고 액티비티에서
DrawView drawView;
VerticalScroll vertical;
drawView = new DrawView(this);
vertical = new VerticalScroll(this);
vertical.addView(drawView);
this.addContentView(vertical, new ViewGroup.LayoutParams(480, 225));
이렇게 썼구요
MyView에서 onKey 를 오버라이드하였습니다.
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN) {
Log.w("MyView", "Weee do something clever here...");
return true;
}
return false;
}
정확히 모르겠지만 이렇게 하니 버티칼스크롤이 동작했습니다.;;
근데 문제는 HorizontalScrollView 인데
package javaroid.guido;
import android.content.Context;
import android.view.MotionEvent;
import android.widget.HorizontalScrollView;
public class HorizontalScroll extends HorizontalScrollView{
public HorizontalScroll(Context context){
super(context);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
return false;
}
}
이렇게 VerticalScroll 과 같은 방법으로 HorizontalScroll.java 파일을 만들었습니다.
그리고 두가지를 동시에 써야하는데
어떻게 써야 좋을지 모르겠습니다.
DrawView drawView;
VerticalScroll vertical;
HorizontalScroll horizontal;
drawView = new DrawView(this);
vertical = new VerticalScroll(this);
horizontal = new HorizontalScroll(this);
horizontal.addView(drawView);
vertical.addView(horizontal);
this.addContentView(vertical, new ViewGroup.LayoutParams(480, 225));
현재 액티비티에 위와같이 구현해놨는데.. 이렇게 하니 가로 스크롤은 작동하는데 세로 스크롤이 작동하지 않습니다.
어떻게 해야 두가지를 동시에 사용할수 있을런지요?
쉽게 설명좀 해주시면 감사하겠습니다^^;