我有一个用XML定义的布局 . 它还包含:
<RelativeLayout
android:id="@+id/item"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
我想用其他XML布局文件来扩充这个RelativeView . 我可能会根据情况使用不同的布局 . 我该怎么办?我正在尝试不同的变化
RelativeLayout item = (RelativeLayout) findViewById(R.id.item);
item.inflate(...)
但他们都没有做好 .
14 回答
虽然回答很晚,但想补充说明这一点
其中
item
是要添加子布局的父布局 .我不确定我是否已按照您的问题进行操作 - 您是否尝试将子视图附加到RelativeLayout?如果是这样,你想要做的事情:
您膨胀XML资源 . 见LayoutInflater doc .
如果您的布局位于mylayout.xml中,您可以执行以下操作:
添加到这一点是有帮助的,即使它是一个旧帖子,如果要将从xml中膨胀的子视图添加到视图组布局中,则需要调用inflate,其中包含它将要进入哪种类型的视图组的线索被添加到 . 喜欢:
inflate方法非常重载,并在文档中描述了这部分用法 . 我有一个问题,从xml中膨胀的单个视图在父进程中没有正确对齐,直到我进行了这种类型的更改 .
更简单的方法是使用
布局通胀
如果您不在活动中,可以使用
LayoutInflater
类中的静态from()
方法获取LayoutInflater
,或者也可以从上下文方法getSystemService()
请求服务:(我知道它差不多4年前但仍值得一提)
检查此链接 . 它有答案 - > https://possiblemobile.com/2013/05/layout-inflation-as-intended/
如果您想多次添加单个视图,则必须使用
如果你喜欢
和
然后它将抛出所有准备添加视图的异常 .
AttachToRoot Set to True
假设我们在XML布局文件中指定了一个按钮,其布局宽度和布局高度设置为match_parent .
在此按钮上单击我们可以设置以下代码的事件来为此活动增加布局 .
希望这个解决方案适合您 .
由于我的独特情况,我遇到了这个错误最难的时候,但终于找到了解决方案 .
我的情况:我正在使用一个单独的视图(XML),其中包含
WebView
,然后在我的主活动视图中单击按钮时在AlertDialog
中打开 . 但不知怎的,WebView
属于主要活动视图(可能是因为我从这里拉资源),所以就在我将它分配给我的AlertDialog
(作为一个视图)之前,我必须得到我的WebView
的父母,把它放进去进入ViewGroup
,然后删除ViewGroup
上的所有视图 . 这工作,我的错误消失了 .....后来加载我的
WebView
....如果您要将子视图附加到RelativeLayout?你可以通过以下方式做到
使用Kotlin,您可以使用:
为此我使用了下面的代码片段,它对我有用 .