2013-02-28 4 views
2

Я новичок в Android. Может ли кто-нибудь сказать мне, как изменить высоту RootView макета программно в Android? Код, который я попробовал приведен нижеAndroid: изменение высоты корневого представления макета программно

LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      View view = inflater.inflate(R.layout.sample, null); 
      view.getRootView().getLayoutParams().height = value; 

После выполнения этого я получаю NullPointerException на строке выше. Может ли кто-нибудь мне помочь? Заранее спасибо.

ответ

4

The View, возвращаемый вызовом надуть является корнем вид, поэтому это должно работать:

View view = inflater.inflate(R.layout.sample, null); 
view.setLayoutParams(new ListView.LayoutParams(LayoutParams.MATCH_PARENT,<height>)); 

Если вы должны были обеспечить ViewGroup раздуть в так:

View view = inflater.inflate(R.layout.sample, containerForTheInflatedView); 

Тогда view будет ViewGroup, а не корневым представлением, которое вы хотите.

+1

Спасибо за ваш ответ .... При использовании этого я могу получить корневой элемент основного макета деятельности ... но в моем случае я раздуваю макет внутри адаптера, и мне нужно, чтобы получить корневой элемент этого макета ... Можете ли вы мне помочь? – akh

+0

Когда вы раздуваете макет внутри адаптера, вы можете просто установить новые параметры макета (моя вторая часть кода) - или я чего-то не хватает? Если да, отправьте свой код адаптера, где вы надуваетесь. – nmw

+0

Спасибо ... Это сработало ..... :) – akh

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