Как использовать layoutinflator для добавления просмотров во время выполнения?
У меня есть два макета: main.xml и buttonpanel.xml. В buttonpanel.xml, в main linearlayout, я устанавливаю силу тяжести на дно. Теперь я пытаюсь добавить макет панели кнопок, используя следующий код.
setContentView(R.layout.main);
LinearLayout layout=(LinearLayout)findViewById(R.id.mainlinearlayout);
LayoutInflater inflater= (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=inflater.inflate(R.layout.buttonpanel,null);
layout.addView(view);
Моя проблема в том, что панель добавлена в верхнюю часть, хотя я установил силу тяжести на дно в buttonpanel.xml. Если я добавлю buttonpanel.xml к main.xml, используя include, он отлично работает.
Может ли кто-нибудь помочь мне, что не так с моим кодом?
Ответы
Ответ 1
У меня были проблемы с удалением параметров макета при раздувании представлений в том виде, в котором вы это делаете. Если я использую немного другой вызов inflate
, мои параметры макета соблюдаются:
parent_view = inflater.inflate(R.layout.buttonpanel, parent);
Или в моем случае, когда родитель не поддерживал добавление к нему просмотров:
view = inflater.inflate(R.layout.buttonpanel, parent, false);
Возможно, это также решит вашу проблему.
EDIT: разные виды возвращаются в зависимости от параметров. LayoutInflater
Ответ 2
вы можете использовать индекс childview для его установки. я думаю, что это поможет you.try другой метод для addview, который включает childindex