在Android应用程序上运行时放置按钮或其他小部件

时间:2012-08-20 21:41:06

标签: android android-layout android-widget

快速问题:在运行时我做一个布尔检查,如果它返回true我想在MainActivity类的相对布局中有两个按钮。如果它是假的,我想要另外两个小部件,这些按钮将是(或接近)。我该怎么做?

2 个答案:

答案 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中设置框架的所有相对布局参数。