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
Quel LinearLayout est censé être caché? Votre mise en page a plusieurs –
Merci pour la réponse @Selali dont la mise en page a l'ID layoutEdit – Champandorid
supprimer 'android: layout_marginBottom =" 8dp "' dans votre code. – KeLiuyue