마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

프로그램이 시작할때, 아래쪽으로 이동해서 위쪽에 포커스를 주고 싶습니다.

0 추천

 

안녕하세요.

프로그램이 시작할 경우에, xml의 어떤 부분때문인지 모르겠지만.. 프로그램의 스크롤이 아래쪽으로

이동해져서, 위의 내용을 보려면 다시 위쪽으로 스크롤뷰를 올려야 하는 현상이 발생합니다.

이 상황을 방지하고자.. 레이아웃의 위쪽부분에 포커스를 주어서, 위쪽에서부터

시작을 하도록 만들고 싶은데 그 방법을 모르겠습니다 ㅠ ㅠ ..

정말 너무나도 해결하고 싶은 문제입니다 ㅠ 어떻게 해결을 해야 할까요 .. 도움이 필요합니다..

 

이전의 글을 올렸던 주소는 바로 아래와 같습니다.

http://www.masterqna.com/android/70913/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%B4-%EC%8B%9C%EC%9E%91%ED%95%A0%EB%95%8C-%EC%99%9C-%ED%99%94%EB%A9%B4%EC%9D%98-%EB%A7%A8-%EC%95%84%EB%9E%98%EC%AA%BD%EC%9C%BC%EB%A1%9C-%EC%9D%B4%EB%8F%99%ED%95%B4%EC%A0%B8%EC%9E%88%EB%8A%94%EC%A7%80-%EC%9E%98-%EB%AA%A8%EB%A5%B4%EA%B2%A0%EC%8A%B5%EB%8B%88%EB%8B%A4

Kind카인드 (3,600 포인트) 님이 2016년 11월 16일 질문

1개의 답변

0 추천
 
채택된 답변
xml 상의 문제는 아니구요

VideoView 자체에 requestFocus() 가 있어서 자동으로 포커스가 움직여 집니다. 포커스에따라 scroll이 자동으로 움직여지는거라...

머 방법이라면 VideoView 안쓰고 MediaPlayer 쓰면 되겠지만.. 귀찮아지는 부분은 많이 있고

음.... 방법이라고 하면

VideoView videoview = findViewById(R.id.videoview);

videoview.postDelay(new Runnable() {

   public void run() { ((ScrollView)findViewById(R.id.scrollview)).scrollTo(0,0); }

}, 1000);

하면 될듯 합니다. (해보진 않았습니다. 대략 이런식으로.... 아니면 MediaPlayer를 사용하는식으로?)
익명사용자 님이 2016년 11월 16일 답변
Kind카인드님이 2016년 11월 25일 채택됨
답변 정말 감사드립니다 ㅠ 그런데, 말씀하신걸 제가 소양이 낮아 받아들이기 어려운 부분이 있어서 재차 여쭙어 보겠습니다.
말씀하신 부분을, 자바부분에 구현을 해야 할것 같은데..  자바부분에 switch문은 아래와 같이 구성이 되어 있습니다. 어떻게 말씀하신걸 구성을 해야할까요 ㅠ

switch(position)
        {
            case 0:
                TextView Reservation_Percent1 = (TextView) findViewById(R.id.Reservation_Percent);
                Reservation_Percent1.setText(R.string.First_Movie_Percent);
                
                uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.first_movie);

            break;
}

 play();
}

public  void play(){       
        videoView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                videoView.start();
            }
        });

        if(videoView.isPlaying()){
            videoView.pause();
        }
        else
        {
            VideoView videoView=(VideoView)findViewById(R.id.videoview);
            videoView.setVideoURI(uri);

            MediaController mc= new MediaController(this);
            videoView.setMediaController(mc);
        }
    }


현재 xml은 아래와 같이 구성이 되어있습니다.
<LinearLayout
                android:id="@+id/video1"
                android:orientation="vertical"
                android:layout_marginTop="20dp"
                android:layout_marginBottom="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <TextView
                    android:id="@+id/Main_Media"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text=" 메인 동영상 "
                    android:textSize="20dp"
                    android:textStyle="bold"
                    />

                <VideoView
                    android:id="@+id/videoview"
                    android:layout_width="wrap_content"
                    android:layout_height="400dp"
                    android:clickable="true"
                    android:visibility="visible"
                    android:layout_marginTop="@dimen/activity_vertical_margin" />

            </LinearLayout>
...