2015-02-02 5 views
0

У меня есть родительский настраиваемый макет (дочерний элемент LinearLayout), который я раздуваю программно.Добавление вида программно не работает

В конструкторе я добавляю другой макет, чтобы быть ребенком моего родительского компоновщика так:

public ExtendedContentLinearLayout(Context context) { 
    super(context); 
    this.context = context; 

    this.setClickable(false); 

    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    mTrigger = inflater.inflate(R.layout.nav_menu_board_expandable_children_outer, this, true); 
    mTrigger.setOnClickListener(this); 
    mTrigger.setBackgroundResource(R.color.da_blue); 


} 

Родитель расположение и «спусковой крючок» макет (ребенок просто добавил выше) работают и отображаются нормально ,

Как только пользователь коснется этого макета «триггера», я хочу добавить нового родителя в родительский - другой макет с большим количеством контента, и поэтому мне нужно, чтобы макет родителя расширялся и включал недавно добавленный макет, но это не работает !

Нажатие на макет триггера не добавляет новый макет (по крайней мере, не отображается на экране). Это нажмите вызов (событие щелчка работает):

@Override 
    public void onClick(View v) { 
     App.disableTouchEventForDefaultDuration(); 

    Log.d("CLICKED", "CLICKED"); 


    LinearLayout mContent = new LinearLayout(context); 
    mContent.setOrientation(HORIZONTAL); 
    mContent.setBackgroundResource(R.color.da_indicator_pink); 
    mContent.setVisibility(VISIBLE); 
    ExtendedContentLinearLayout.this.addView(mContent); 


} 
+0

Когда вы нажимаете то, что сейчас происходит сейчас? Отображается ли какая-либо ошибка? – andrewww

+0

Отсутствие ошибки вообще. Просто взгляд не отображается. – Bended

+0

Установлен ли родительский макет на фиксированный размер или установлен для переноса содержимого? – Muthu

ответ

0
mContent.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

Пожалуйста, попробуйте выше код, попробуйте для WRAP_CONTENT, а также MATCH_PARENT

0

я в конечном итоге создание макета в формате XML, а затем надувать его с помощью:

View view = inflater.inflate(this.layout, null, false); 

, а затем добавить эту точку зрения, используя addView (вид)

это отлично работает для меня

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