[java] 프로그래밍 방식으로 뷰를 숨기는 방법은 무엇입니까?

내 응용 프로그램에서 나는 LinearLayout서로 바로 위에 2가 있습니다 . 메뉴 옵션을 통해 하단 항목을 사라지게하고 상단 항목이 사라진 항목 위에 드롭 다운되도록하고 싶습니다 LinearLayout.

문제는 Java에서 이것을 수행하는 방법에 대해 전혀 모른다는 것입니다.

애니메이션화 할 필요는 없습니다. Layout에서 다른 활동 (메뉴)이 돌아올 때를 숨기고 싶습니다 OnActivityResult. 메뉴 activityboolean내가 체크인 할 을 설정하고 그 OnActivityResult값에 따라 하단을 숨기거나 표시해야하는지 결정합니다 Layout.

// Only change value if it is different from what it was.
if(mUseVolumeButtonAsPTT != resultData.getBoolean("UseVolumeButtonAsPTT")){
    mUseVolumeButtonAsPTT = resultData.getBoolean("UseVolumeButtonAsPTT");
    if(!mUseVolumeButtonAsPTT){
        // Hide lower LinearLayout.
    } else {
        // Show lower LinearLayout.
    }
}

아무도 내가 어떻게해야하는지에 대한 힌트 나 링크를 줄 수 있습니까?



답변

view.setVisibility(View.GONE)레이아웃에서 제거하려면 호출 할 수 있습니다 .

아니면 view.setVisibility(View.INVISIBLE)그냥 숨기고 싶다면.

에서 안드로이드 문서 도구 :

보이지 않음

이보기는 보이지 않지만 레이아웃을 위해 여전히 공간을 차지합니다. 함께 사용 setVisibility(int)하고 android:visibility.

지나간

이보기는 보이지 않으며 레이아웃 용도로 공간을 차지하지 않습니다. 함께 사용 setVisibility(int)하고 android:visibility.


답변

이 시도:

linearLayout.setVisibility(View.GONE);


답변

Kotlin 솔루션

view.isVisible = true
view.isInvisible = true
view.isGone = true

// For these to work, you need to use androidx and import:
import androidx.core.view.isVisible // or isInvisible/isGone

Kotlin 확장 솔루션

보다 일관된 길이를 원하고, nullable 뷰에 대해 작업하고, 잘못된 부울을 작성할 가능성을 낮추려면 다음 사용자 지정 확장을 사용해보십시오.

// Example
view.hide()

fun View?.show() {
    if (this == null) return
    if (!isVisible) isVisible = true
}

fun View?.hide() {
    if (this == null) return
    if (!isInvisible) isInvisible = true
}

fun View?.gone() {
    if (this == null) return
    if (!isGone) isGone = true
}


답변