2012-06-04 8 views
6

पर एक बटन जोड़ना मैं मीडिया नियंत्रक को एक बटन जोड़ना चाहता हूं। इसलिए मैंने मीडियाकंट्रोलर क्लास को बढ़ाया, एक बटन बनाया और इसे फ्रेम लेआउट में जोड़ा। लेकिन नया जोड़ा बटन चलते समय प्रतिबिंबित नहीं कर रहा है।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

आपने मीडिया नियंत्रक में बटन कैसे जोड़ा है? क्या आप अपना कोड या कुछ टिप्स साझा कर सकते हैं धन्यवाद – 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 ओवरराइडिंग सबसे अच्छा समाधान लगता है।

संबंधित मुद्दे