隐藏GridLayout中的行

时间:2014-05-20 11:05:30

标签: 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>

这是我隐藏视图的时间:

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;
}

1 个答案:

答案 0 :(得分:0)

如果您更换&#34; View.GONE&#34;使用&#34; View.INVISIBLE&#34;,行中的视图将不会被看到(不可见),但它们仍将被测量,并且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);