gpt4 book ai didi

java - 切换 LinearLayout 的不可见和可见

转载 作者:行者123 更新时间:2023-12-01 19:31:39 24 4
gpt4 key购买 nike

我目前的代码应该使 LinearLayout 在可见和消失之间切换,但它仅在可见时切换,而在布局消失时不会切换。有人可以解释一下我做错了什么吗?

XML:

<ImageButton
android:id="@+id/info_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@drawable/myimage"
android:onClick="toggleInfo"/>

<LinearLayout
android:id = "@+id/text_box"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible"
android:gravity="center">

<TextView
android:id="@+id/info_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/test"
android:textSize="18sp"
android:textStyle="normal"
android:background="@color/white"
/>

</LinearLayout>

JAVA:

public void toggleInfo(View view) {
LinearLayout infoText = findViewById(R.id.text_box);

if (infoText.getVisibility() == LinearLayout.GONE) {
infoText.setVisibility(LinearLayout.VISIBLE);
}

if (infoText.getVisibility() == LinearLayout.VISIBLE) {
infoText.setVisibility(LinearLayout.GONE);
}
}

最佳答案

默认情况下,您的布局是可见的。当您调用该方法时,它会检查 View 是否可见。第二个 if 条件满足。所以第一次调用 LinearLayout.GONE 。

但是当您第二次单击时(现在您的 View 不可见),第一个条件满足并且 LinearLayout.VISIBLE 被调用。现在您的 View 可见。所以第二个条件也满足,并且 LinearLayout.GONE 再次被调用。

只要加上 else 就可以了。

public void toggleInfo(View view) {
LinearLayout infoText = findViewById(R.id.text_box);

if (infoText.getVisibility() == LinearLayout.GONE) {
infoText.setVisibility(LinearLayout.VISIBLE);
}else if (infoText.getVisibility() == LinearLayout.VISIBLE) {
infoText.setVisibility(LinearLayout.GONE);
}
}

关于java - 切换 LinearLayout 的不可见和可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59614776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com