0

내 ViewPager 조각에 scrollView가 있습니다. 초기 scrollView 위치를 (0,100)으로 설정하고 싶습니다.Android ScrollView의 초기 위치를 재정의하는 방법은 무엇입니까?

scrollView.scrollTo(0,100)onCreateView()에 설정해 보았습니다. 그것은 작동하지 않았다.

그럼 핸들러에서 똑같은 기능을 시도했지만 작동했지만 사용자 경험에 좋지 않은 scrollView에서 작은 얼간이를 일으키는 (0,0) 이후에만 스크롤됩니다 (0,100).

(0,0) 대신 scrollview를 (0,100)으로 직접 스크롤 할 수있는 방법이 있습니까? 또는 초기 스크롤 이벤트를 감지하기 위해 scrollView에서 사용할 수있는 메서드가 있습니까?

P.S : 질문 : here도 내 것과 같지만 받아 들인 대답은 저를 위해 작동하지 않습니다.

도움을 주시면 감사하겠습니다. 감사합니다

+0

스크롤 뷰가 프래그먼트 내부에 있으므로이 메소드가 작동해야하기 때문에 잘못된 위치에서 메소드를 호출했을 가능성이 높습니다. 당신이하는 일의 실제 사례가 없으면 많은 도움이 될 수 없습니다. – Ricardo

+0

혹시 해결책을 찾았습니까? 나는 동일한 문제가 있습니다. –

답변

0

scrollTo 대신 requestFocus를 스크롤보기의 내부 레이아웃의 첫 번째 자식에 사용할 수 있습니다.

예 :

당신이 선 아래

보기보기 = findViewByTag ("ScrollTopTag) 추가 스크롤 뷰의 상단으로 스크롤 할 활동에

<ScrollView> 

    <LinearLayout> 

     <TextView 
      android:focusable="true" 
      android:focusableInTouchMode="true" 
      android:tag="ScrollTopTag" /> 
     //***rest of your layout***// 
    </LinearLayout> 

</ScrollView> 

, view.requestFocus를();

+0

시도했지만 작동하지 않습니다. – vijay

+0

수정 된 레이아웃에 대한 의견을 보내주십시오. – WritingForAnroid

+0

안녕하세요 답변 해 주셔서 감사합니다. '보기 view1 = scrollView.getChildAt (scrollView.getChildCount() - 1); view1.setFocusable (true); view1.setFocusableInTouchMode (true); view1.requestFocus();' 나는 그것이 당신이 다소 말했던 것이라고 생각하지만 나를 위해 일하지 않았다. scrollTo가 처리기에서 올바르게 작동하고 원하는 위치로 스크롤하는 것처럼 말합니다. 따라서 scrollTo() 메서드에는 문제가 없습니다. scrollTo (0,100)를 호출하면 먼저 (0,0)으로 스크롤 한 다음 (0,100)로 이동합니다. – vijay

0

어댑터를 재사용하지 않고 뷰를 부 풀리는 것처럼 느껴지므로로드 시간이 고르지 않게되는 경우가 있습니다. 예를 들어이 예제에서는 250ms를 사용하지만 예제에서는 목록 뷰 아직 채워지지 않았기 때문에 어디에도 스크롤하지 않을 것입니다. 처음부터 시작 하겠지만, 작동 여부를 확인하기 위해 지속 시간을 약 2000ms로 늘리십시오. 작동하는 경우 어댑터 클래스로 돌아가서 각보기를 다시 플레 싱하지 않고 재활용하는지 확인합니다.

+0

안녕하세요 페디 scrollTo() 잘 작동 – vijay

+0

하지만 질문은, 그것은 초기 위치 (0,0) 후에 만 ​​원하는 위치로 스크롤합니다. 그리고 그 초기 위치를 오버라이드하고 싶습니다. 작은 얼간이가 생깁니다. 재활용 부분을 구현하지 않았습니다. 나는 단지 의견을 재조명하고있다. – vijay

관련 문제