2012-01-09 1 views
2

私はレイアウトといくつかの動的に追加されたボタンを持っています。いくつかの回では、これらのボタンは、私が使用するだけでdisapearを決めなければならない:私は例えば、20〜30点の作品を多くのボタンを持つことができれば.setVisibility(View.GONE)を使用することはできますか、またはView自体を削除するだけでよいですか?

myButton.setVisibility(View.GONE) 

は、それは良い方法ですか? または、レイアウトからボタンを完全に削除してから、必要に応じてボタンをもう一度追加する方が良いか、Visibilityモディファイアを使用するだけですか? 良い、短所、長所..!?

+0

UR UIのスナップショットは、どちらが良いのかを理解するのに役立ちます – Ronnie

答えて

1

実際に視認性が変わるボタンが20〜30個ある場合は、ボタンを作成したり、その度に視認性を変えたりするのではなく、最低限のボタンを押してプロパティを変更する必要があります。

+0

私はゲームを作りますので、レイアウトで何が起こっているのか予測することができますので、考えてみてください。 私のレイアウトはバックパックです。バックパックの「アイテム」のアイコン、それぞれに様々な能力を持つonClickListenerがあります。 プレイヤーは何を保持し、何を使用するのかを判断することはできません。 。 (30) –

1

20-30ボタンはかなり多くのように聞こえる。一般的な可視性パラメータの使用には何も問題はありませんが、このようなビューが多数あると考えている場合は、おそらくカップルを持っていて、別のものに再利用することを検討する必要があります。

+0

Visibilityの変更は頻繁に起こりますが、高速ではなく、あまり時間がかかりませんので、ボタンを1つだけ変更し、次にいくつかのやりとりを行い、次に他のものなどを修正します。メモリリークやそれに似たものがなくなったら、私はそのようにしておきます。 あなたはどう思いますか? –

+1

できます。しかし、私は、単にカップルを再利用するのではなく、30のビューの可視性を管理することが面倒であると思います。また、レイアウトに表示されるビューが多いほど、膨らみに時間がかかります。 – Joru

1

私はベストプラクティスは.setVisibility(View.GONE)を使用することだと思います。 おそらく、ALLをデフォルト(XMLレイアウトで定義)にしてオンデマンドで有効にすることをお勧めします。

たとえば、私はListViewが非常にスマートで、ビューを削除するよりもむやみにマークすることをお勧めします。

そして、それはあなたが文句を言わないのビューがなくなっ:)

UPDATEとしてsetted必要があることを理解するように、私は一般的にはAndroidがあまりにもスマートだと思い:

多分あなたのための最良の方法は、それらを追加することですあなたが必要とする多くのボタンを作成するでしょう:)

+0

私はコードからボタンを作成しますが、それらを必要としない限り、可視性の変更によって消えてしまいます。そのようにしておくと、もう一度使用する必要がある場合.setVisibility(View.VISIBLE) –

1

を削除してから再度表示する場合は、を表示するだけで、繰り返したくさんのボタンを再作成するのを避けるためです。
一方、を再び表示する必要がない場合は、を再度削除するだけです。

+0

Okay 、私は再びそれらが必要Visiの変更は、私はありがとうと思います! –

+0

私はそれがゲームのバックパックであるとコメントを読んだ。そうであれば30のボタンをすべて消しておくことをお勧めし、バックパックにアイテムを追加する必要があるときはボタンを修正して設定する可視にする(新しいものを作成しない)。その後、ユーザーがアイテムを使用すると、ボタンを元に戻します。 – Jave

+0

しかし、私はあなたがグリッドビュー、リストビュー、またはアダプターを使用している別のビューを使用するのが最善であると考えるべきです。ビューが自動的にそれを処理するので、ボタンの作成/非表示/削除については心配する必要はありません。 – Jave

関連する問題