2012-04-23 3 views
0

Я пытаюсь добавить представление в RelativeLayout в свой OnClickListener.Добавление динамического представления в ClickListener

montrolButton.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
// myParent is a relative layout 
// newChild is an ImageView 
        myParent.addView(newChild); 
        requestLayout(); 
       } 
}); 

Я посмотрел на HierarchyViewer, я не вижу, как добавляется мой новый ребенок. Не могли бы вы рассказать мне, если я пропущу что-нибудь?

+0

Мне кажется, вам нужно добавить setContentView (myParent); – kmb64

+0

Он должен работать так, как вы это делаете (если 'myParent' является частью вашей иерархии макетов). Вы обновили HierarchyViewer после добавления ребенка? – zapl

ответ

0

Я просто попробовал тот же код, и он работает так, как должен. Может возникнуть проблема с вашей переменной myParent, которая не является тем элементом, который вы ожидаете от нее.

Также мне не нужно было звонить requestLayout(), чтобы добавить к нему лишний вид.

Возможно, попробуйте просто явно получить другую часть вашего вида и добавить ее туда, чтобы увидеть, что происходит. Кроме того, просто чтобы попробовать, вы можете сделать это:

RelativeLayout rv = (RelativeLayout) this.findViewById(R.id.right3); 
    ProgressBar iv = new ProgressBar(this); 
    rv.addView(iv); 

, чтобы увидеть, если есть что-то не так с вашей точки зрения изображения вместо myParent

В любом случае, это работает, если оба элемента в порядке - есть не что иное, делать в своей деятельности.

0

Вы задаете атрибуты макета нового вида (вид изображения)?

Смежные вопросы