0

簡単な質問: 実行時にブール値のチェックを行い、true が返された場合、MainActivity クラスの相対的なレイアウトに 2 つのボタンを配置したいと考えています。false の場合は、代わりに、それらのボタンがある場所 (または十分に近い場所) に 2 つの他のウィジェットを用意したいと考えています。それ、どうやったら出来るの?

4

2 に答える 2

1

また、ViewSwitcher を実装することもできます。ここでは、より複雑なボタン/ウィジェットのセットを、1 回の呼び出しで非常に簡単に切り替えることができます。

  ViewSwitcher mViewSwitcher = (ViewSwitcher) findViewById(R.id.viewswitcher);

  if (some_logic == true) {
      mViewSwitcher.showNext();
  }

XML を次のように設定すると、上記のように 2 つの LinearLayout が切り替わります。

  <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

これらの2つの選択肢がある場合は、両方をレイアウトに配置し、必要なものを非表示/表示します。View#setVisibility()

より動的にしたい場合は、プログラムでウィジェットを追加および削除できます。ViewGroup#addView()

ボタンを配置する場所にのRelativeLayoutような単純なレイアウトを追加してフレーム内に配置できるように、これらすべてのレイアウトパラメータを設定する必要があるため、実行時の変更は非常に複雑です。FrameLayoutxmlでフレームのすべての相対レイアウトパラメータを設定できるという利点があります。

于 2012-08-20T22:04:31.917 に答える