2017-07-18 12 views
1

CardViewを非表示にするときに空白を削除するにはどうすればよいですか?私はアンドロイドとFirebaseでアプリをやっていて、カードベースの情報をFirebaseから表示しますが、情報が正しくない場合は、カードビューが消えなければなりません。ポイントは、カードビューが消えても、まだレイアウト内のスペースを使用している、私は答えを試しましたCardViewを非表示にすると空白を削除する方法

setVisibility(GONE) view becomes invisible but still occupies spaceしかし、それは私のためには動作しません。私はあなたが私を助けることができると思います

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); 
    }     } 

<?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です:

@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); 
} 

は、これが私のレイアウトです。

+0

永遠に消えてしまったときはいつでも、アダプターからアイテムを取り出してみませんか? – Sufian

答えて

0

まずXMLコードあなたが投稿したILS間違って閉じ、あなたはMVIEWフィールドでCardViewレイアウトを指していることを確認し さらにオン(CardViewタグで終了しなければならない)、ANSのみGONEまたはINVISIBLE使用し、 INVISIBLE変更あなたをパネル(ルートビュー)の構造はありません。

+0

質問を編集してmViewを投稿しましたが、どこにエラーがあるのか​​わかりません。 –

関連する問題