簡単な質問: 実行時にブール値のチェックを行い、true が返された場合、MainActivity クラスの相対的なレイアウトに 2 つのボタンを配置したいと考えています。false の場合は、代わりに、それらのボタンがある場所 (または十分に近い場所) に 2 つの他のウィジェットを用意したいと考えています。それ、どうやったら出来るの?
質問する
98 次
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
ような単純なレイアウトを追加してフレーム内に配置できるように、これらすべてのレイアウトパラメータを設定する必要があるため、実行時の変更は非常に複雑です。FrameLayout
xmlでフレームのすべての相対レイアウトパラメータを設定できるという利点があります。
于 2012-08-20T22:04:31.917 に答える