![](/img/trans.png)
[英]How to programmatically hide android some, but not all, view items in an XML output?
[英]How to hide a View programmatically?
在我的應用程序中,我有 2 個LinearLayout
的正上方。 通過菜單選項,我希望能夠使底部的一個消失,並將頂部的一個下拉到消失的LinearLayout
。
問題是,我不知道如何在 Java 中做到這一點。
它不必是動畫的,我想在OnActivityResult
隱藏另一個活動(菜單)返回時的Layout
。 菜單activity
設置了一個boolean
,我在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);
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
如果您希望它們的長度更一致,適用於可為空的視圖,並降低編寫錯誤布爾值的機會,請嘗試使用這些自定義擴展:
// 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
}
為了簡化條件可見性,還要添加以下內容:
fun View?.show(visible: Boolean) {
if (visible) show() else gone()
}
fun View?.hide(hide: Boolean) {
if (hide) hide() else show()
}
fun View?.gone(gone: Boolean = true) {
if (gone) gone() else show()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.