2017-10-17 4 views
0

J'ai un LinearLayout à l'intérieur de la grille qui est la visibilité par défaut GONE, Sur un seul clic, j'indique que LinearLayout, Puis sur un autre clic, je règle aussi ma visibilité LinearLayout. Donc le problème est que mon layout est parti avec succès mais il prend encore de la place, je suis bloqué par ce problème depuis un jour, Et aussi chercher toute la solution mais pas d'eux a travaillé pour moi,Pourquoi mon LinearLayout prend-t-il de l'espace même si je mets la visibilité à l'intérieur de gridView?

Mon code est: -

Ceci est le fichier XML que je suis peuplant adaptateur:

grid_view_dash_item.xml: -

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="8dp" 
    android:layout_marginTop="8dp" 
    android:gravity="center" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:id="@+id/layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:orientation="horizontal"> 


     <TextView 
      android:id="@+id/itemName" 
      style="@style/textColorBlack_14sp" 
      android:layout_width="110dp" 
      android:layout_height="wrap_content" 
      android:text="Check Engine" /> 

     <com.android.volley.toolbox.NetworkImageView 
      android:id="@+id/imgWacsItem" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_marginEnd="10dp" 
      android:src="@drawable/battery" /> 

     <Switch 
      android:id="@+id/switchView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginStart="10dp" 
      android:theme="@style/SwitchTheme" 
      android:visibility="gone" /> 


     <IncrementDecrementWidgetActivity 
      android:id="@+id/number_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginStart="14dp" 
      android:layout_marginTop="2dp" 
      app:textSize="18sp" /> 

     <LinearLayout 
      android:id="@+id/addCommentLayout" 
      android:layout_width="50dp" 
      android:layout_height="40dp" 
      android:gravity="center_vertical"> 

      <ImageView 
       android:id="@+id/imgAddItemComment" 
       android:layout_width="20dp" 
       android:layout_height="20dp" 
       android:layout_marginStart="15dp" 
       android:src="@drawable/edit_icon" /> 

     </LinearLayout> 


     <Switch 
      android:id="@+id/switchViewNoShow" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginStart="-30dp" 
      android:theme="@style/SwitchTheme" 
      android:visibility="invisible" /> 

    </LinearLayout> 


     <LinearLayout 
     android:id="@+id/layoutEdit" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:orientation="vertical" 
     android:padding="5dp"> 

     <EditText 
      android:id="@+id/editTextPopup" 
      android:layout_width="250dp" 
      android:layout_height="80dp" 
      android:background="@android:drawable/editbox_background_normal" 
      android:gravity="top" 
      android:hint="Enter Comment" 
      android:padding="10dp" 
      android:textColor="#000000" /> 

     <Button 
      android:id="@+id/closePopupBtn" 
      style="@style/buttonRegular" 
      android:layout_width="wrap_content" 
      android:layout_height="@dimen/default_button_height" 
      android:layout_marginTop="10dp" 
      android:gravity="center" 
      android:text="OK" /> 
     </LinearLayout> 



    <LinearLayout 
     android:id="@+id/pupUpWindowLayout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/layout" 
     android:layout_gravity="start" 
     android:orientation="horizontal" 
     > 

     <TextView 
      android:id="@+id/textEdit" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:visibility="gone" 
      android:text="text" /> 

    </LinearLayout> 

</LinearLayout> 

Voici le code de l'adaptateur: -

GridViewWacsItemAdapter extends RecyclerView.Adapter<GridViewWacsItemAdapter.ViewHolder> { 

    Context mContext; 
    List<WacsDashboardItemResponse.SubGroup.ItemArray> itemArray; 

    public GridViewWacsItemAdapter(Context mContext, List<WacsDashboardItemResponse.SubGroup.ItemArray> itemArray) { 
     this.mContext = mContext; 
     this.itemArray = itemArray; 
    } 

    @Override 
    public GridViewWacsItemAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 

     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.grid_view_dash_item, parent, false); 
     ViewHolder viewHolder = new ViewHolder(v); 

     return viewHolder; 
    } 

    @Override 
    public void onBindViewHolder(final GridViewWacsItemAdapter.ViewHolder holder, int position) { 

     if (itemArray.get(position).responseType.responseTypeList.equalsIgnoreCase("CHOICE_LIST1")) { 
      holder.switchView.setVisibility(View.VISIBLE); 
      holder.number_button.setVisibility(View.GONE); 
      holder.addCommentLayout.setVisibility(View.VISIBLE); 

      holder.switchViewNoShow.setVisibility(View.INVISIBLE); 

     } else if (itemArray.get(position).responseType.responseTypeList.equalsIgnoreCase("CHOICE_LIST2")) { 

      holder.switchView.setVisibility(View.GONE); 
      holder.number_button.setVisibility(View.VISIBLE); 
      holder.addCommentLayout.setVisibility(View.GONE); 

      holder.switchViewNoShow.setVisibility(View.GONE); 

      holder.number_button.setRange(0, 4); 
     } 

     holder.imgWacsItem.setDefaultImageResId(R.drawable.progress_bar_default); // image for loading... 
     holder.imgWacsItem.setImageUrl(itemArray.get(position).icon, AppController.getInstance().getImageLoader()); 
     holder.itemName.setText(itemArray.get(position).itmeDesc); 

     holder.number_button.setOnClickListener(new IncrementDecrementWidgetActivity.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       String number = holder.number_button.getNumber(); 
       // Toast.makeText(mContext, "number " + number, Toast.LENGTH_SHORT).show(); 
      } 
     }); 

holder.closePopupBtn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     holder.textEdit.setVisibility(View.VISIBLE); 
     holder.textEdit.setText(holder.editTextPopup.getText().toString()); 
     holder.layoutEdit.setVisibility(View.GONE); 

    } 
}); 
     holder.addCommentLayout.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       Toast.makeText(mContext, "Clicked on View", Toast.LENGTH_SHORT).show(); 
       holder.layoutEdit.setVisibility(View.VISIBLE); 

      } 

     }); 

    } 

    @Override 
    public int getItemCount() { 
     return itemArray.size(); 
    } 

    class ViewHolder extends RecyclerView.ViewHolder { 

     TextView itemName, textEdit; 
     Switch switchView, switchViewNoShow; 
     NetworkImageView imgWacsItem; 
     IncrementDecrementWidgetActivity number_button; 
     LinearLayout pupUpWindowLayout, addCommentLayout,layoutEdit; 
     Button closePopupBtn; 
     EditText editTextPopup; 


     public ViewHolder(View itemView) { 

      super(itemView); 

      itemName = (TextView) itemView.findViewById(R.id.itemName); 
      imgWacsItem = (NetworkImageView) itemView.findViewById(R.id.imgWacsItem); 
      switchView = (Switch) itemView.findViewById(R.id.switchView); 
      switchViewNoShow = (Switch) itemView.findViewById(R.id.switchViewNoShow); 
      closePopupBtn=(Button)itemView.findViewById(R.id.closePopupBtn); 
      editTextPopup=(EditText)itemView.findViewById(R.id.editTextPopup); 
      textEdit = (TextView) itemView.findViewById(R.id.textEdit); 
      pupUpWindowLayout = (LinearLayout) itemView.findViewById(R.id.pupUpWindowLayout); 
      addCommentLayout = (LinearLayout) itemView.findViewById(R.id.addCommentLayout); 
      layoutEdit = (LinearLayout) itemView.findViewById(R.id.layoutEdit); 
      layoutEdit.setVisibility(View.GONE); 


      number_button = (IncrementDecrementWidgetActivity) itemView.findViewById(R.id.number_button); 

     } 
    } 

} 

Tout type d'aide appréciée par moi: - Merci

+0

Quel LinearLayout est censé être caché? Votre mise en page a plusieurs –

+0

Merci pour la réponse @Selali dont la mise en page a l'ID layoutEdit – Champandorid

+0

supprimer 'android: layout_marginBottom =" 8dp "' dans votre code. – KeLiuyue

Répondre

0

Mettez une couleur d'arrière-plan pour la mise en page et voir si elle est vraiment partie. Il peut y avoir d'autres vues occupant l'espace, pas le LinearLayout que vous recherchez.

+0

N'aide pas, je dis mon article avec succès mais l'espace vide est maintenu – Champandorid

+0

Je viens d'essayer le code, enlevé inutiles drawables et articles du xml et fait un test rapide, et je suppose [le code fonctionne] (https://youtu.be/1CLhhXU_J1w). –