プログラムでビューを非表示にする方法は?


125

私のアプリケーションでは、2がLinearLayout互いに真上にあります。メニューオプションを使用して、下の1つを非表示にし、消えた上に1つ下のドロップダウンを表示できるようにしたいと考えています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.
    }
}

誰かが私にこれをどのようにすべきかについてのヒントやリンクを教えてもらえますか?

回答:


324

view.setVisibility(View.GONE)レイアウトから削除する場合は、呼び出すことができます。

またはview.setVisibility(View.INVISIBLE)、単に非表示にしたい場合。

Androidドキュメントから:

見えない

このビューは非表示ですが、レイアウトのためにスペースを占有します。setVisibility(int)およびとともに使用しandroid:visibilityます。

ゴーン

このビューは非表示であり、レイアウトのためにスペースを取りません。setVisibility(int)およびとともに使用しandroid:visibilityます。


16
それがview.setVisibility(View.INVISIBLE)に設定されている場合、ユーザーは引き続きそれを操作できますか?
WhiskThimble 2013

たとえば、アクティビティがGONEに設定されている場合、ビューに変更を加えることができますか?それがINVISIBLEに設定されている場合は、あなたができると思います。
モーティスト、2014

1
RelativeLayoutではどうですか?ビューの位置は互いに依存しています。眺めが終わったらどうなるのかしら。
Zin Win Htet 14

@ErPragatiSinghは常にコピーして貼り付ける場所からリンクを配置し、OPが言いたかったように答えを保持してください。:)
スーフィアン2016

@Sufianありがとう、すべてAndroid開発者の公式サイトから。
2016


0

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拡張ソリューション

それらをより一貫した長さにし、null許容ビューで作業し、間違ったブール値を書き込む可能性を低くしたい場合は、次のカスタム拡張を使用してみてください。

// 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
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.