안드로이드 개발 질문/답변
(글 수 45,052)
화면 이동에 관한 질문입니다.
구조는
텍스트뷰를 감싸고 있는 스크롤뷰입니다.
body = (TextView)findViewById(R.id.body);
sv = (ScrollView)findViewById(R.id.scroll);
초기화는 이렇게 했습니다.
string str = 대량의 문자열
body.setText(stf);
이렇게 하고
init(); 함수를 수행합니다.
private void init(){
sv.smoothScrollTo(0, 2000);
}
이런 단순한 구조입니다.
제 예상으로는
텍스트뷰에 문자열이 세팅되고
2000 으로 위치가 이동이 되야하는데
안됩니다. 혹시나 해서 sv.getHeight()를 수행해 봤으나 0을 뱉어냅니다.
똑같이 다른 이벤트를 구현한곳에
sv.smoothScrollTo(0, 2000);
를 실행해본 결과 이동이 제대로 됩니다...
제 예상으로는 init 함수가 수행될때 sv 객체에 제대로 된 값이 할당이 안되는것같은데요..
초기 수행시에 지정된 위치로 이동하려면 어떻게 해야할까요?
조언 부탁드립니다.




sv.post(new Runnable() {
@Override
public void run() {
sv.smoothScrollTo(0, 2000);
}
});
init() 메서드 에서 위와 같이 주면 될거 같네요^^