当前位置: 首页 > 知识库问答 >
问题:

如何在隐藏CardView时删除空间

康恩
2023-03-14

隐藏CardView时如何删除空间?我用android和Firebase做了一个应用程序,我在cardviews中显示Firebase的信息,但当信息不正确时,cardview必须消失。重点是cardview消失了,但仍然在布局中使用了空格,我已经在

setVisibility(GONE)视图变得不可见,但仍然占用空间,但对我来说不起作用。

@Override
protected void onStart() {
    super.onStart();
    firebaseAuth.addAuthStateListener(firebaseAuthListener);

    final FirebaseRecyclerAdapter<CursosDB, MainActivity.CursosPViewHolder> firebaseRecyclerAdapter =
    new FirebaseRecyclerAdapter<CursosDB, MainActivity.CursosPViewHolder>(
        CursosDB.class,
        R.layout.design_row_cursos,
        MainActivity.CursosPViewHolder.class,
        myRef)  
        {
            @Override
            protected void populateViewHolder(MainActivity.CursosPViewHolder viewHolder, final CursosDB Cmodel, int position) 
            {
                String estado = Cmodel.getSTATUS().toString();
                if (estado.equals("OK")){
                    viewHolder.setPhotoURL(getApplicationContext(), Cmodel.getURI());
                    viewHolder.setTitle(Cmodel.getTITLE());
                    viewHolder.setCiudad(Cmodel.getPLACE());
                    viewHolder.setLevel(Cmodel.getLEVEL());
                    viewHolder.setDur(Cmodel.getDURACION());
                    viewHolder.setPrice(Cmodel.getCOSTO());
                }else{
                    RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) viewHolder.mView.getLayoutParams();
                    layoutParams.setMargins(0,0,0,0);
                    viewHolder.mView.setLayoutParams(layoutParams);
                    viewHolder.mView.setVisibility(View.INVISIBLE);
                    viewHolder.mView.setVisibility(View.GONE);
                    //viewHolder.mView.setVisibility(View.GONE);
                    //Toast.makeText(getApplicationContext(), "Ningún curso aprobado aún", Toast.LENGTH_SHORT).show();
                }

                viewHolder.mView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        // Toast.makeText(getApplicationContext(), Cmodel.getUSERID(), Toast.LENGTH_LONG).show();
                        //Toast.makeText(getApplicationContext(), Cmodel.getTITLE(), Toast.LENGTH_SHORT).show();
                        //Toast.makeText(UsersList.this, user_key, Toast.LENGTH_LONG).show();
                    }
                });
            }
        };
    mCourses.setAdapter(firebaseRecyclerAdapter);
}

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cardview_cursos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:onClick="positionAction"
android:padding="4dp"
android:paddingBottom="4dp"
android:paddingEnd="4dp"
android:paddingStart="4dp"
android:paddingTop="4dp"
app:cardElevation="4dp">

<LinearLayout android:id="@+id/layout_to_hide"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/Cimg"
        android:layout_width="match_parent"
        android:layout_height="165dp"
        android:scaleType="center"
        app:srcCompat="@drawable/knowit_logo" />

    <TextView
        android:id="@+id/Ctitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/Cimg"
        android:layout_marginLeft="14dp"
        android:layout_marginStart="14dp"
        android:paddingTop="8dp"
        android:text="Titulo"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/Clugar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/Ctitle"
        android:layout_alignStart="@+id/Ctitle"
        android:layout_below="@+id/Ctitle"
        android:layout_marginTop="10dp"
        android:text="Lugar" />

    <TextView
        android:id="@+id/textView29"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/Clugar"
        android:layout_alignStart="@+id/Clugar"
        android:layout_below="@+id/Clugar"
        android:layout_marginTop="10dp"
        android:text="$" />

    <TextView
        android:id="@+id/Cprice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/textView29"
        android:layout_marginBottom="4dp"
        android:layout_toEndOf="@+id/textView29"
        android:layout_toRightOf="@+id/textView29"
        android:paddingLeft="5dp"
        android:text="0.0" />

    <TextView
        android:id="@+id/Cdur"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/Clugar"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginEnd="126dp"
        android:layout_marginRight="126dp"
        android:text="Duración" />

    <TextView
        android:id="@+id/Cnivel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/Cprice"
        android:layout_alignLeft="@+id/Cdur"
        android:layout_alignStart="@+id/Cdur"
        android:layout_marginBottom="0dp"
        android:text="Nivel" />

    </RelativeLayout>
</LinearLayout>  </android.support.v7.widget.CardView>

这是mview:

public static class CursosPViewHolder extends RecyclerView.ViewHolder {
    View mView;

    public CursosPViewHolder(final View itemView) {
        super(itemView);
        mView = itemView;

    }

    public void setTitle(String title){
        TextView post_title = (TextView)mView.findViewById(R.id.Ctitle);
        post_title.setText(title);
    }

    public void setCiudad (String ciudad){
        TextView post_city = (TextView)mView.findViewById(R.id.Clugar);
        post_city.setText(ciudad);
    }

    public void setPhotoURL(Context ctx, String pgotouserurl) {
        ImageView post_image =(ImageView)mView.findViewById(R.id.Cimg);
        Picasso.with(ctx).load(pgotouserurl).into(post_image);
    }                   }

我希望你能帮助我。

共有1个答案

潘泳
2023-03-14

首先,您发布的ils错误的XML代码关闭,(必须以CardView标记结束)在添加时,请确保您使用mView字段指向CardView布局,并且只使用GONE或Invision,Invision更改面板(根视图)结构,但GONE不要

 类似资料:
  • 问题内容: 我有一些服务器端HTML输出,我无法使用纯CSS来处理,本质上DIV有时适用: 要么 要么 要么 当DIV == 我要删除它。 有任何想法吗? 问题答案: 甚至更好(假设使用jQuery): 编辑:其他答案是好的,但OP想要删除空项目,而不是将其隐藏。

  • 问题内容: 有没有办法隐藏标签栏并删除剩余空间(大约50像素)? 我试过了 没运气。我看到空白。 问题答案: 如果您在隐藏的标签栏下仍看到黑色条纹,是否尝试 在 此处选择 “在不透明的条下延伸边缘” ? 还要确保仍然选择 “底部栏” 。希望能帮助到你!

  • 我正在使用JasperReports 4.5.0生成报告。我正在生成不同格式的报告,如html、csv、pdf、xls、doc。在我的一份报告中,我有6列,分别是col1、col2、col3、col4、col5、col6。但根据情况,我想把col4藏起来。为此,我使用了printWhenExpression。现在它根据条件隐藏列,但问题是该列占用的空间保持不变。 我怎样才能去掉col3和col5之

  • 问题内容: 如何在Android HoneyComb中隐藏或删除状态栏?每次运行应用程序时,我都会发现状态栏必须覆盖一些内容。 我已尝试更改,但没有任何更改。 问题答案: 你不知道 与电容式家庭/菜单/等相同,它被认为是永久性的屏幕装饰。Android手机触摸屏下方的按钮。 您如何衡量可用于内容的空间?

  • 锁定或解锁对象或图层 锁定对象可防止对象被选择和编辑。只需锁定父图层,即可快速锁定其包括的多个路径、组和子图层。 若要锁定对象,请单击“图层”面板中与要锁定的对象或图层对应的编辑列按钮(位于眼睛图标的右侧)。用鼠标指针拖过多个编辑列按钮可一次锁定多个项目。或者,您可以选择要锁定的对象,然后选择“对象”>“锁定”>“所选对象”。 若要解锁对象,请单击“图层”面板中与要解锁的对象或图层对应的锁图标 。

  • 这是我的HTML PHP表格页面的全部代码。。 我遇到的问题是,如果列和行(字段)为空, 当数据为空时,我想隐藏列和行字段。