2012-10-26 61 views
2

我想创建一个应用程序,我可以随着时间的推移添加布局。例如。该应用程序附带一套已知的布局,但可以下载新的主题包而无需分发新的apk。我不希望这些存储在布局目录中 - 只要我有加载它们的方法,它们可以存储在应用程序可以访问的任何位置。有没有办法在运行时将布局添加到Android应用程序?

它看起来像布局需要编译成二进制形式,如果我要使用它们与LayoutInflator。那么有没有办法在分发之前编译它们?我真的宁愿不必为这些写一个解释器,因为我确信它会比较慢。

+0

您可以通过编程方式创建这些布局。 – petey

+1

XML布局文件在编译时被预处理以提供优化。换句话说,一个非常复杂的XML布局(如果不在编译时进行预处理的话)可能需要很长时间才能导致延迟和UX的问题。简而言之,不能以你想要的方式膨胀XML文件。我读过的文档在解释这个时使用了“当前”这个词,这表明未来版本的Android *可能允许这样做,但显然这不是保证。 – Squonk

+0

@forgivegod我知道我可以通过编程创建它们 - 这是我对自布局以来必须编写解释器的评论。 – Ben

回答

0

这个布局文件通过LayoutInflater在另一个布局中。

假设您想在主布局中添加此布局。因此,通过mainlayout.add(view)在主布局和主布局中的这个列表布局中进行线性布局,这里的视图是LayoutInflater viw。

实施例:

private View view; 
    view = getLayoutInflater().inflate(R.layout.image_sub_layout,null); 
    topicLinearLayout.addView(view); // main Layout Linear layout 

感谢。

相关问题