我有一个Layout,我想用由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);
您可以在任何位置添加您的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
当然可以。只需为你的活动设置一个初始的空布局。
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