0

快速提问:在运行时我进行布尔检查,如果它返回 true,我希望在 MainActivity 类的相对布局中有两个按钮。如果它是错误的,我希望在这些按钮所在的位置(或足够接近)有另外两个小部件。我怎么做?

4

2 回答 2

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>

于 2012-08-21T02:14:31.337 回答
0

如果您只有这两种选择,请将它们都放在您的布局中并隐藏/显示您想要的。查看#setVisibility()

如果您希望它更具动态性,您可以以编程方式添加和删除小部件。视图组#addView()

在运行时修改 aRelativeLayout非常复杂,因为您需要设置所有这些布局参数,以便您可以FrameLayout在按钮应该去的地方添加一个简单的布局,如 a 并将它们放在框架内。优点是您可以在 xml 中设置框架的所有相关布局参数。

于 2012-08-20T22:04:31.917 回答