我正在Android 2.1中开发一个应用程序,它需要根据按钮点击动态加载视图。这是我的活动的粗略布局。
在点击按钮1时,它应显示图像视图,点击按钮2,它应显示列表视图,按钮3 - 按钮和图像的线性布局,依此类推。所有视图都应仅在提供的空白区域中加载。
我认为遵循的方法是“充气布局”。但是点击另一个按钮,应该删除旧的充气布局,并且应该可以看到新的充气布局。
有没有更好的方法来实现这一目标?如果Inflating布局是唯一更好的方法,我如何删除旧的膨胀布局并加载新的膨胀布局。
答案 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
我认为你最好使用像这样的内置组件然后自己实现类似的东西