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

Linearlayout 의 버튼 이벤트 문제 도움 요청드립니다.

0 추천

안녕하세요, 안드로이드 개발 시작한지 얼마 안된 초보개발자 입니다

다름아니라 동영상 플레이어를 만들고 있는데, 다른 동영상 플레이어를 참고하여 연습해보고 있습니다.

동영상 플레이 중에 화면을 터치하면 재생컨트롤이 위에 뜰수 있도록 구현해보고 있는데 그 위에 버튼 이벤트가 발생하지 않는 문제가 있어 도움 요청 드립니다

 

- 화면 터치 이벤트 시 liearlayout 생성

public boolean dispatchTouchEvent(MotionEvent event) {

        int action = event.getAction();
        if (action == MotionEvent.ACTION_DOWN){

            if (!bAddLayout) {
                view = new PlaybackView(this);
                addContentView(view.getLinearLayout(), view.getLinearLayoutParams());
                bAddLayout = true;
            } else {
                view.getLinearLayout().removeAllViews();
                bAddLayout = false;
            }
    }

        Toast.makeText(getApplicationContext(), "onTouchEvent", Toast.LENGTH_SHORT).show();
        return super.dispatchTouchEvent(event);
        //return true;

    }

 

- linearlayout 내 버튼 리스너 구성

 

    private LinearLayout linear;
    private LinearLayout.LayoutParams paramlinear;

    public PlaybackView(final Context context) {
        super(context);

        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        linear = (LinearLayout) inflater.inflate(R.layout.playback_layout, null);
        paramlinear = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);

        Button playbutton = (Button) linear.findViewById(R.id.play);

        playbutton.setOnClickListener(new OnClickListener(){
            @Override public void onClick(View view) {
                Toast.makeText(context, "onClick", Toast.LENGTH_SHORT).show();
            }

        });
    }

 

감사합니다!

 

skyysh (120 포인트) 님이 2018년 11월 12일 질문

1개의 답변

0 추천
PlaybackView 에서 버튼 정의만 하고 실제 view에 추가 하지 않으셔서, 호출이 안된 듯 합니다.

addView(linear); 같은걸  넣어주세요..
익명사용자 님이 2018년 11월 12일 답변
...