Android:在Android 2.1中动态加载视图的最佳方式

时间:2012-06-19 11:35:04

标签: android layout

我正在Android 2.1中开发一个应用程序,它需要根据按钮点击动态加载视图。这是我的活动的粗略布局。

enter image description here

在点击按钮1时,它应显示图像视图,点击按钮2,它应显示列表视图,按钮3 - 按钮和图像的线性布局,依此类推。所有视图都应仅在提供的空白区域中加载。

我认为遵循的方法是“充气布局”。但是点击另一个按钮,应该删除旧的充气布局,并且应该可以看到新的充气布局。

有没有更好的方法来实现这一目标?如果Inflating布局是唯一更好的方法,我如何删除旧的膨胀布局并加载新的膨胀布局。

3 个答案:

答案 0 :(得分:3)

您可以使用ViewFlipper来保存三种布局,只需调用showNext()setDisplayedChild()即可确定显示的布局。

答案 1 :(得分:0)

当你的布局比一个ImageView左右更复杂时,充气是很好的。在这种情况下,您应该动态创建一个ImageView并将其添加到“空白区域”(它应该是一些ViewGroup(即,RelativeView))。在这种情况下:

mRelativeView.removeAllViews();
ImageView newView = new ImageView(mContext);
newView.setImageResource(R.drawable.someImage);
mRelativeView.addView(newView);

当布局更复杂时,使用LayoutInflater(但记住膨胀非常慢):

mRelativeView.removeAllViews();
View newView = LayoutInflater.from(mContext).inflate(R.layout.some_layout, null);
mRelativeView.addView(newView);

在上面的示例中,mContext可以是当前的Activity。

答案 2 :(得分:0)

听起来你正试图做一些与TabHost非常相似的事情,请尝试在TabHost阅读: http://developer.android.com/reference/android/widget/TabHost.html

请参阅此处的教程: http://developer.android.com/resources/tutorials/views/hello-tabwidget.html

我认为你最好使用像这样的内置组件然后自己实现类似的东西