2012-06-04 7 views
6

MediaController에 버튼을 추가하고 싶습니다. 그래서 MediaController 클래스를 확장하고 버튼을 만들어 프레임 레이아웃에 추가했습니다. 그러나 새로 추가 된 버튼은 실행 중 반영되지 않습니다. MediaController에 버튼 추가하기

것은 내가 잘못 여기서 뭐하는 거지

public class VideoController extends MediaController { 

private Button searchButton; 
public VideoController(Context context) { 
    super(context); 

    searchButton = new Button(context); 
    searchButton.setText("Search"); 
    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    params.gravity = Gravity.RIGHT; 
    System.out.println("Adding a button"); 

    addView(searchButton, params); 
    //updateViewLayout(this, params); 
} 

@Override 
public void hide() { 
} 
} 

아래의 코드를 찾아주세요. 어떤 제안이 도움이 될 것입니다.

미리 감사드립니다.

+0

어떻게 mediaController에 버튼을 추가 했습니까? 코드 또는 팁을 공유 할 수 있습니까? 감사합니다 – Dilip

답변

12

당신은 당신의 VideoController 클래스 setAnchorView를 재정의해야 : 미디어 컨트롤러의 뷰 (makeControllerView 방법) 나중에 구성되어 있기 때문에

@Override 
public void setAnchorView(View view) { 
    super.setAnchorView(view); 

    Button searchButton = new Button(context); 
    searchButton.setText("Search"); 
    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    params.gravity = Gravity.RIGHT; 
    addView(searchButton, params); 
} 
+0

그레이트 대답 : – user1840255

+0

setanchorview는 무엇을합니까? – user1767754

1

사실이 발생합니다. 그래서 당신은 그것을 무시하고 거기에 버튼을 추가해야합니다.

불행히도, 현재 숨겨져 있습니다. 그리고 setAnchorView를 무시하는 것이 가장 좋은 해결책 인 것 같습니다.