2012-06-04 10 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を上書きする必要があります。

@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

をメディアコントローラのビューが(makeControllerView方法で)後に構築されているため、実際にそれが起こります。だからあなたはそれをオーバーライドしてそこにボタンを追加する必要があります。

残念ながら、現時点では非表示です。 setAnchorViewをオーバーライドするのが最適な解決策です。

関連する問題