Android 在GridLayout中隐藏行
我在一个xml文件中创建了一个GridLayout,它有3列2行。 如何通过代码隐藏第二行 我试图为该行中的视图设置可见性,但第一列似乎尽可能扩展Android 在GridLayout中隐藏行,android,grid-layout,Android,Grid Layout,我在一个xml文件中创建了一个GridLayout,它有3列2行。 如何通过代码隐藏第二行 我试图为该行中的视图设置可见性,但第一列似乎尽可能扩展 <GridLayout android:id="@+id/lytInfo" android:layout_width="match_parent" android:layout_height="wrap_content
<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>
如果将“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);
您可以删除这两个项目,就像在第二行中有两个项目一样,将它们从列表中删除并再次填充数据。它将解决您的问题,而且如果您不想丢失这些数据,请将它们放在另一个列表中,并随时获取它们。
findViewById(R.id.tvName).setVisibility(View.INVISIBLE);
findViewById(R.id.tvNameSpace).setVisibility(View.INVISIBLE);
findViewById(R.id.tvNameLabel).setVisibility(View.INVISIBLE);