gpt4 book ai didi

android - gridlayout 的子级可见性消失了

转载 作者:太空狗 更新时间:2023-10-29 14:19:03 24 4
gpt4 key购买 nike

这是我的.xml。
当我触摸单元格时 - 可见性设置为 View.GONE,但它只是消失为 View.INVISIBLE。牢房所在的地方有一 block 空地。单元格的大小是固定的。

如何配置 GridLayout 才能正常工作?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<GridLayout
android:id="@+id/grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#DDDDDD"
android:columnCount="3"
android:rowCount="3" >

<LinearLayout
android:id="@+id/lin1"
android:layout_width="170px"
android:layout_height="170px"
android:background="#0099cc"
android:onClick="hideCell"
android:orientation="horizontal" >
</LinearLayout>

<LinearLayout
android:id="@+id/lin2"
android:layout_width="170px"
android:layout_height="170px"
android:background="#99CC00"
android:onClick="hideCell"
android:orientation="horizontal" >
</LinearLayout>

<LinearLayout
android:id="@+id/lin3"
android:layout_width="170px"
android:layout_height="170px"
android:background="#FFBB33"
android:onClick="hideCell"
android:orientation="horizontal" >
</LinearLayout>

<LinearLayout
android:id="@+id/lin4"
android:layout_width="170px"
android:layout_height="170px"
android:background="#ff4444"
android:onClick="hideCell"
android:orientation="horizontal" >
</LinearLayout>

<LinearLayout
android:id="@+id/lin5"
android:layout_width="170px"
android:layout_height="170px"
android:background="#33b5e5"
android:onClick="hideCell"
android:orientation="horizontal" >
</LinearLayout>

<LinearLayout
android:id="@+id/lin6"
android:layout_width="170px"
android:layout_height="170px"
android:background="#aa66cc"
android:onClick="hideCell"
android:orientation="horizontal" >
</LinearLayout>

<LinearLayout
android:id="@+id/lin7"
android:layout_width="170px"
android:layout_height="170px"
android:background="#9933cc"
android:onClick="hideCell"
android:orientation="horizontal" >
</LinearLayout>

<LinearLayout
android:id="@+id/lin8"
android:layout_width="170px"
android:layout_height="170px"
android:background="#669900"
android:onClick="hideCell"
android:orientation="horizontal" >
</LinearLayout>

<LinearLayout
android:id="@+id/lin8"
android:layout_width="170px"
android:layout_height="170px"
android:background="#ff8800"
android:onClick="hideCell"
android:orientation="horizontal" >
</LinearLayout>
</GridLayout>

</LinearLayout>

这是 hideCell 方法的代码:

public void hideCell(View v) {
v.setVisibility(View.GONE);
}

最佳答案

好的,根据GridLayout的Android文档:

对GONE的解读

出于布局目的,GridLayout 将可见性状态为 GONE 的 View 视为具有零宽度和高度。这与完全忽略标记为 GONE 的 View 的策略略有不同。例如,如果一个没有标记的 View 单独在一列中,那么当且仅当 View 上没有定义重力时,该列本身将折叠为零宽度。如果定义了重力,那么标记消失的 View 对布局没有影响,容器应该像从未添加过 View 一样进行布局。这些陈述同样适用于行和列,以及行或列的组。

所以我通过创建自己的 GridView 类来解决这个问题。

关于android - gridlayout 的子级可见性消失了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18588923/

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