2012-02-03 22 views
7

我正在处理的应用程序需要显示配置文件的Horizo​​ntalScrollView的动态布局。配置文件只是一个带有图片和文本的RelativeLayout。由于我从数据文件中获取数据,因此我需要为每个配置文件创建一个相对布局。起初,我在for循环中以编程方式创建了每个RelativeLayout,然后将其添加到父视图。这可行,但我不想这样做。我想根据设备的屏幕尺寸使用不同的布局文件等。Android:是否可以制作视图的副本?

然后我想。那么,如果我有一个只有一个配置文件的布局呢?我的代码可以通过findViewById()获得一个配置文件,然后根据它创建新的配置文件!换句话说:

// get the layout 
    profileLayout = (LinearLayout) findViewById(R.id.profileLayout);   

    // get the first profile in the layout 
    originalProfile = (RelativeLayout) findViewById(R.id.profile1); 

    // make copy of profile 
    temporaryProfile = originalProfile; 

    // make changes to the this profile and add it back 
    profileLayout.addView(temporaryProfile); 

当然,这也不行,因为这是Java和temporaryProfile现在是originalProfile参考。那么是否有任何方法可以制作此RelativeLayout的副本?我知道LayoutInflater,但我仍然不明白它是如何工作的。还有Object.clone()

回答

8

并非如此。听起来像你的特定情况可以从某种类型的ListView和适配器中受益(有关信息,请参阅资源this)。如果没有,那么一个LayoutInflater 最好的答案,因为它正是你想要的。获取一个,然后可以使用它来“膨胀”您在XML布局文件中定义的任何视图,并根据需要执行任何操作。

Here's关于充气器的大讨论。

+0

感谢您的回应! – 2012-02-03 17:49:19

0

为什么不简单地在xml文件中使用包含您想要的布局。

相关问题