隐藏GridLayout中的行

Dan*_*ali 8 android grid-layout

我在一个包含3列和2行的xml文件中创建了一个GridLayout.如何通过代码隐藏第二行?

我尝试为该行中的视图设置可见性,但第一列似乎尽可能地扩展.

    <GridLayout
                    android:id="@+id/lytInfo"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:alignmentMode="alignBounds"
                    android:columnCount="3"
                    android:columnOrderPreserved="false"
                    android:paddingTop="@dimen/padding.verySmall" >

                <TextView android:id="@+id/tvNameLabel"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:singleLine="true"
                    android:text="@string/name"
                    android:textColor="@color/black"
                    android:textSize="@dimen/text.normal" />

                <Space android:layout_width="@dimen/padding.veryVerySmall" android:id="@+id/tvNameSpace"/>

                <TextView
                    android:id="@+id/tvName"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:singleLine="true"
                    android:textColor="@color/darkRed"
                    android:textSize="@dimen/text.normal"
                    android:textStyle="bold" />

                <TextView
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:singleLine="true"
                    android:text="@string/pwd"
                    android:textColor="@color/black"
                    android:textSize="@dimen/text.normal" />

                <Space android:layout_width="@dimen/padding.veryVerySmall" />

                <TextView
                    android:id="@+id/tvPwd"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:singleLine="true"
                    android:textColor="@color/darkRed"
                    android:textSize="@dimen/text.normal"
                    android:textStyle="bold" />


            </GridLayout>
Run Code Online (Sandbox Code Playgroud)

这是我隐藏视图的时候:

f(knownName)
{
    viewRoot.findViewById(R.id.tvName).setVisibility(View.GONE);
    viewRoot.findViewById(R.id.tvNameSpace).setVisibility(View.GONE);
    viewRoot.findViewById(R.id.tvNameLabel).setVisibility(View.GONE);
    break;
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ike 0

如果将“View.GONE”替换为“View.INVISIBLE”,则该行中的视图将看不到(不可见),但它们仍将被测量,并且 GridLayout 的行为就像它们仍然存在一样。使用 GONE 会导致它们测量为零,并且 GridLayout 会折叠第 1 行。

    findViewById(R.id.tvName).setVisibility(View.INVISIBLE);
    findViewById(R.id.tvNameSpace).setVisibility(View.INVISIBLE);
    findViewById(R.id.tvNameLabel).setVisibility(View.INVISIBLE);
Run Code Online (Sandbox Code Playgroud)