디스플레이 (또는 부모) 높이보다 큰 높이로 사용자 정의보기를 만들려고합니다. 이보기는 스크롤 할 수 있어야합니다. 나는 새로운 손가락 위치를 측정하기 위해 onTouchEvent를 사용하고 실제로 원하는 것을 얻지 만 내보기는 움직이지 않습니다. 인터넷에서 문제의 해결책을 찾았지만 적절한 대답을 찾지 못했습니다. 이 내보기scrollBy()가 스크롤되지 않습니다.
public class SmartScroll extends View{
public SmartScroll(Context context) {
super(context);
}
int count = 0;
int yStart = 0, yEnd = 0;
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
yStart = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
MeasureSpec.toString(getMeasuredHeight());
MeasureSpec.toString(getMeasuredWidth());
count++;
yEnd = (int) event.getY();
scrollBy(0, (yEnd - yStart));
yStart = yEnd;
break;
case MotionEvent.ACTION_UP:
yStart = 0;
yEnd = 0;
break;
}
return true;
}
그리고 이것은 내가 그것을 비활성 만드는 방법은 다음과 같습니다
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SmartScroll scrollView = new SmartScroll(getApplicationContext()) {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(1500, MeasureSpec.EXACTLY));
}
};
scrollView.setBackgroundDrawable(getResources().getDrawable(R.drawable.gradient));
setContentView(scrollView);
}
을}
, 나를 불행하게도 나는 찾지 못했습니다은
대신 스크롤 가능보기를 구현하는 대신 왜 사용자 정의보기를 ScrollView/HorizontalScrollView에 래핑하지 않을까요? – Luksprog
이 뷰는 매우 복잡한 뷰 계층 구조가있는 큰 프로젝트의 일부가 될 것입니다. Ar 현재로서는이 기능이 사용자가 제안한대로 작동하지만보기의 측정 및 레이아웃을보다 잘 관리하려면이 사용자 지정보기가 필요합니다. – Lanitka