2012-01-09 2 views
2

레이아웃과 동적으로 추가 된 버튼이 있습니다. 이 버튼을 그냥 사라지는, 그래서 결정해야 몇 번 사용 : 그것은 내가 예를 들어 20 ~ 30 개 조각을 위해, 많은 버튼을 가질 수 있다면 좋은 방법.setVisibility (View.GONE)을 사용할 수 있습니까 아니면 뷰 자체를 제거해야합니까?

myButton.setVisibility(View.GONE) 

입니까? 또는 레이아웃에서 completly .remove 버튼을 누른 다음 필요한 경우 다시 추가하거나 더 나은 방법은 Visibility 수정자를 사용해야합니까? 더 나은, 단점과 프로 ..!?

+0

UR UI의 스냅 샷은 어느 것이 더 나은지 이해할 수 있습니다. – Ronnie

답변

1

가시성이 변경되는 20-30 개의 버튼이 있다면 버튼을 만들거나 속성을 변경할 때마다 속성을 변경해야합니다.

+0

게임을 만들어서 레이아웃에서 무슨 일이 일어날 지 예측할 수 없으므로 그것에 대해 생각해보십시오. 내 레이아웃은 배낭이며 모든 버튼은 배낭에있는 "아이템"아이콘, 각 플레이어에 다양한 능력을 가진 onClickListener가 있습니다. 플레이어가 무엇을 사용하고 무엇을 사용할지 결정할 수 없으며 배낭에서 2-3 조각 만 가질 수도 있고 욕심이 많을 수도 있습니다. . (30) –

1

20-30 버튼은 상당히 많이 들립니다. 가시성 매개 변수를 일반적으로 사용하는 데는 아무 문제가 없지만 이처럼 많은 뷰가 있다고 생각하는 경우에는 커플을 사용하고 다른 용도로 다시 사용하는 것을 고려해야합니다.

+0

Visibility 변경은 자주 발생하지만 빠르지는 않으며 동시에 많은 시간이 소요되지 않으므로 버튼 하나만 변경 한 다음 일부 상호 작용을 누른 다음 다른 작업 등을 수행하면 Visi 수정자가 사용하면 ok 메모리 누출이나 그와 같은 일을하지 않으면 나는 그렇게 할 것입니다. 당신은 어떻게 생각하십니까? –

+1

가능합니다. 그러나 부부를 재사용하는 것보다 30 개의 조회수를 관리하는 것이 번거롭다 고 생각합니다. 또한 레이아웃에서보기가 많을수록 풍선이 오래 걸립니다. – Joru

1

가장 좋은 일반적인 방법은 .setVisibility (View.GONE)를 사용하는 것입니다. 아마도 가장 좋은 방법은 ALL을 기본값 (XML 레이아웃에서 정의)으로 설정하고 요청시 사용하도록 설정하는 것입니다.

예를 들어 나는 ListView가 매우 똑똑하다고 생각하고보기를 제거하지 않고 GONE으로 표시하는 것을 선호합니다.

그리고 일반적으로 안드로이드는 또한 당신이 실 거예요 :)

UPDATE 사라로 잘 살고 볼 필요가 이해할 수 있도록 너무 똑똑하다고 생각 :

어쩌면 당신을위한 가장 좋은 방법은 사람들을 추가하는 것입니다 버튼을 사용하면 필요에 따라 많은 버튼을 만들 수 있습니다.

+0

코드에서 버튼을 생성하지만 코드가 필요 없다면 Visibility가 변경되면 사라집니다. 좋은 방법으로 계속 사용하면 다시 사용할 필요가 있습니다. .setVisibility (View.VISIBLE) –

1

을 제거한 다음 다시 표시하려면으로 표시하려면 표시 여부를 설정 한 다음 다시 표시로 변경하는 것이 좋습니다. 많은 버튼을 반복해서 재현하는 것을 피하십시오.
한편 을 다시 표시하지 않으려면을 다시 표시하면됩니다.

+0

좋아요. , 나는 그들을 다시 필요로한다 Visi 변화는 ok 일 것이다 나는 당신을 감사한다고 생각한다! –

+0

게임에서 배낭이라고 말하면서 30 개의 버튼을 모두 지우고 가방을 추가해야 할 때 버튼을 수정하고 설정해야한다고 말하면서 표시 (새 것을 만들지 않음). 그런 다음 사용자가 아이템을 사용할 때 버튼을 뒤로 놓으면 사라집니다. – Jave

+0

그러나 나는 당신이 어댑터를 사용하여 gridview, listview 또는 다른 뷰를 사용하는 것이 가장 좋을 것이라고 생각해야한다. 보기가 자동으로 처리하기 때문에 단추를 만들거나 숨기거나 제거하는 것에 대해 걱정할 필요가 없습니다. – Jave

관련 문제