1

我有一个布局,我想用由 2 个文本视图和一个按钮组成的项目来填充。我事先不知道有多少项目会填充我的布局。由于我在编写 layout.xml 时不知道要添加多少项目,这意味着我必须在 java 而不是 xml 中添加项目。但我不喜欢用 java 构建 GUI,因为它看起来很丑。

有谁知道我是否可以为我的项目创建一个 xml 文件,然后在执行期间将新项目添加到我的布局中?

我编写了一些伪代码来尝试演示我想要完成的任务:

主布局.xml

//My empty Layout
<Layout myMainLayout >
</RelativeLayout>

Fragment_post.xml

//one post
<TextView/>
<TextView/>
<Button/>

在某处的代码中

setContentView(R.layout.MainLayout);
MyMainLayout.addFragment(R.layout.Fragment_post);
4

2 回答 2

0

您可以在任何地方添加您的 fragment_post.xml:

LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout view=(LinearLayout)inflater.inflate(R.layout.yourfragment, null);
yourLayout.addView(view);

请不要将 Fragment 与 GUI 的一部分混淆。详见此处:http: //developer.android.com/guide/components/fragments.html

于 2013-02-17T10:30:18.580 回答
0

你当然可以做到这一点。只需为您的活动设置一个初始空布局。

onCreate()
{
setContentView(R.layout.initial_layout);
}

然后获取并保留对主布局的引用。

LayoutInflater inflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout mainLayout=(RelativeLayout)inflater.inflate(R.layout.initial_layout, null);

接下来,在需要时将新视图添加到您的布局中。

LinearLayout view=(LinearLayout)inflater.inflate(R.layout.fragment_post, null);
mainLayout.addView(view);

但是请注意,您在这里所说的片段并不是android所说的片段。在此处了解实际的 android 片段:

http://developer.android.com/guide/components/fragments.html

于 2013-02-17T10:37:42.280 回答