Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何对Recyclerview隐藏cardview_Android - Fatal编程技术网

Android 如何对Recyclerview隐藏cardview

Android 如何对Recyclerview隐藏cardview,android,Android,我在布局中有两个CardView,我显示的布局是Recyclerview的一部分,它被多次创建 我只想在特定情况下显示第二个cardview;但当我不想显示它时,它会留下空白。 默认情况下,我正在为第二个cardview使用android:visibility=“invisible” 我的第二个cardview代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card

我在布局中有两个CardView,我显示的布局是Recyclerview的一部分,它被多次创建

我只想在特定情况下显示第二个cardview;但当我不想显示它时,它会留下空白。

默认情况下,我正在为第二个cardview使用
android:visibility=“invisible”

我的第二个cardview代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.CardView
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:layout_margin="20dp"
        android:clickable="true"
        android:elevation="5dp"
        android:foreground="?attr/selectableItemBackground"
        card_view:cardCornerRadius="10dp">

...

  <android.support.v7.widget.CardView
        android:id="@+id/cv_ad"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:layout_margin="20dp"
        android:clickable="true"
        android:elevation="5dp"
        android:foreground="?attr/selectableItemBackground"
        card_view:cardCornerRadius="10dp"
        android:visibility="invisible">

...

使用

android:visibility="gone"
相反


不可见
相当于使您的视图100%透明,但是
消失
将使您的视图消失,布局中的所有其他视图将重新计算它们的位置,就好像您的视图不存在一样。

您可以对java类隐藏卡片视图。 为此,获取每个卡视图的2个ID,并执行以下操作

import android.support.v7.widget.CardView;

CardView card_view, cv_ad;

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        card_view = (CardView) findViewById(R.id.card_view);
        cv_ad = (CardView) findViewById(R.id.cv_ad);
        card_view.setVisibility(View.VISIBLE);
        cv_ad.setVisibility(View.GONE);

}

消失:-此视图不可见,并且不占用任何空间用于布局

不可见:-此视图不可见,但仍会占用空间用于布局


这就是为什么你能看到里面的空间。您可以直接使用setVisibility(View.go)for

如果您不想显示它,请使用
go
。我之前尝试过,但没有成功,现在它开始工作了