【问题标题】:Hide row in GridLayout在 GridLayout 中隐藏行
【发布时间】:2014-07-08 14:43:56
【问题描述】:

我在一个包含 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;
}

【问题讨论】:

  • 您可以删除这两个项目,例如如果在第二行中有两个项目,则将它们从列表中删除并再次填充数据。它将解决您的问题,如果您不想丢失这些数据,请将它们放在另一个列表中并随时获取。

标签: android grid-layout


【解决方案1】:

如果将“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);

【讨论】:

    猜你喜欢
    • 2019-03-18
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多