0

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

在此处输入图像描述

说点击button1,它应该显示imageview,点击button2,它应该显示listview,对于button3 - 按钮和图像的线性布局,等等。所有视图都应仅加载到提供的空白处。

我认为要遵循的方法是“膨胀布局”。但是在单击另一个按钮时,应该删除旧的膨胀布局,并且应该可以看到新的膨胀布局。

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

4

3 回答 3

3

您可以使用 ViewFlipper 来保存三个布局并简单地调用showNext()orsetDisplayedChild()来确定显示哪个布局。

于 2012-06-19T11:40:31.597 回答
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中可以是当前活动。

于 2012-06-19T11:46:39.503 回答
0

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

并在此处查看教程:http: //developer.android.com/resources/tutorials/views/hello-tabwidget.html

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

于 2012-06-19T11:48:05.447 回答