Android: 如何在程序中动态修改布局的根视图高度

3

我是Android新手。请问如何在Android中以编程方式更改布局的RootView高度?下面是我尝试过的代码:

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

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

执行此操作后,我在上面的代码行上收到一个空指针异常。 有人能帮帮我吗?提前感谢。
1个回答

5
inflate调用返回的视图是根视图,因此应该可以这样操作:
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
当您在适配器中填充布局时,您可以只需设置新的布局参数(我的第二段代码)-或者我错过了什么?如果是这样,请发布您正在填充的适配器代码。 - nmw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接