我有兩個佈局xml文件。在一個佈局中,我有RecyclerView,另一個佈局只有幾個文本視圖和按鈕。現在我的問題是我想在RecyclerView爲空時更改我的佈局。 RecyclerView包含用戶可以通過點擊每行RecyclerView中的刪除圖標來刪除的產品列表。當用戶達到列表的大小零,然後我想要更改佈局其他包含文字your cart is empty please add some products.
android:在運行時更改佈局屏幕
我的第一個佈局看起來像這樣。
從刪除列表中的所有項目後,應該是這樣的。我所有的XML文件都準備好了。
這裏是我的我的適配器的一些代碼。
onCreateViewHolder
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = layoutInflater.inflate(R.layout.checkout_single_design, parent, false);
return new ViewHolder(view);
}
刪除圖標點擊收聽
holder.ivDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openDialog(design);
}
});
這裏是openDialog()方法。這裏的設計是我的模特班。
public void openDialog(final Design design) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Confirm");
builder.setMessage("Remove item from cart?");
builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
designList.remove(design);
notifyDataSetChanged();
saveSharedPref(context, "cart", new Gson().toJson(designList));
Toast.makeText(context, "deleted", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
Design.java
public class Design implements Serializable{
public int id;
public String qualityId;
public String qualityName;
public String designId;
public String designName;
public String image;
public String name; //use as shade name
public String discPercent;
public String amount;
public int pcs;
public String qty;
}
在活動,我只是設置適配器recyclerView。
co_recycler_view.setLayoutManager(new LinearLayoutManager(CheckOutActivity.this));
co_recycler_view.setHasFixedSize(true);
adapter = new CheckOutAdapter(CheckOutActivity.this, designList);
co_recycler_view.setAdapter(adapter);
我希望我的問題對所有人都清楚。我不知道如何做到這一點。請建議。
這意味着我必須在列表爲空時創建回調邏輯,然後使用setContentView。正確? –
是的,您可以在用戶刪除一個項目時檢查'RecyclerView'中的項目數量,然後調用'setContentView'(如果它爲空),但是記住當您調用它時必須再次綁定您的視圖。所以如果我是你,我會選擇'ViewSwitcher'。 – Max