我在一个包含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; }
解决方法
如果将“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);