快速问题:在运行时我做一个布尔检查,如果它返回true我想在MainActivity类的相对布局中有两个按钮。如果它是假的,我想要另外两个小部件,这些按钮将是(或接近)。我该怎么做?
答案 0 :(得分:1)
你也可以实现一个ViewSwitcher,只需一次调用即可轻松切换出一组更复杂的按钮/小部件
ViewSwitcher mViewSwitcher = (ViewSwitcher) findViewById(R.id.viewswitcher);
if (some_logic == true) {
mViewSwitcher.showNext();
}
像这样设置XML,上面的内容将在两个LinearLayouts之间切换:
<ViewSwitcher
android:id="@+id/viewswitcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
--- buttons, Views, whatever---
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
--- buttons, Views, whatever---
</LinearLayout>
答案 1 :(得分:0)
如果您只有这两种选择,请将它们放在您的布局中并隐藏/显示您想要的那个。 View#setVisibility()
如果您希望它更具动态性,您可以通过编程方式添加和删除小部件。 ViewGroup#addView()
在运行时修改RelativeLayout
非常复杂,因为您需要设置所有这些布局参数,以便在按钮应该放置的位置添加像FrameLayout
这样的简单布局并将其放入框架。具有以下优点:您可以在xml中设置框架的所有相对布局参数。