From a933bb22f64fa479feec24c2089cb222adf0a0f3 Mon Sep 17 00:00:00 2001 From: TaiwanStar Developer Date: Fri, 5 Jun 2026 16:16:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(ui):=20=E6=94=B9=E9=80=A0=E8=B2=A8?= =?UTF-8?q?=E9=81=93=E7=AE=A1=E7=90=86=E5=88=97=E8=A1=A8=E7=82=BA=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E5=BC=8F=20Grid=20=E4=BD=88=E5=B1=80=E8=88=87=20Adapt?= =?UTF-8?q?er=20=E9=82=8F=E8=BC=AF=E5=B0=8D=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devs/vmc/RecyclerVmcSlotListAdpter.java | 41 ++- .../ui/devs/vmc/VmcSlotListActivity.java | 4 +- .../res/layout/recycler_vmc_slot_list.xml | 239 ++++++++++++------ 3 files changed, 204 insertions(+), 80 deletions(-) diff --git a/app/src/main/java/com/unibuy/smartdevice/ui/devs/vmc/RecyclerVmcSlotListAdpter.java b/app/src/main/java/com/unibuy/smartdevice/ui/devs/vmc/RecyclerVmcSlotListAdpter.java index eb6cd29..db0fda1 100644 --- a/app/src/main/java/com/unibuy/smartdevice/ui/devs/vmc/RecyclerVmcSlotListAdpter.java +++ b/app/src/main/java/com/unibuy/smartdevice/ui/devs/vmc/RecyclerVmcSlotListAdpter.java @@ -19,10 +19,12 @@ import androidx.viewpager.widget.ViewPager; import com.unibuy.smartdevice.R; import com.unibuy.smartdevice.databinding.RecyclerVmcSlotListBinding; import com.unibuy.smartdevice.exception.Logs; +import com.unibuy.smartdevice.exception.LogsEmptyException; import com.unibuy.smartdevice.structure.ProductStructure; import com.unibuy.smartdevice.structure.SlotStructure; import com.unibuy.smartdevice.tools.Tools; import com.unibuy.smartdevice.ui.ProductSearchActivity; +import com.unibuy.smartdevice.ui.tools.ImageGlide; import java.util.List; @@ -73,15 +75,42 @@ public class RecyclerVmcSlotListAdpter extends RecyclerView.Adapter { + int current = slot.getCount(); + if (current > 0) { + slot.setCount(current - 1); + notifyItemChanged(position); + } + }); + + holder.binding.buttonCountPlus.setOnClickListener(v -> { + int current = slot.getCount(); + slot.setCount(current + 1); + notifyItemChanged(position); + }); + + holder.binding.imageProduct.setOnClickListener(new selectPositionOnClickListener(position)); + holder.binding.textProductName.setOnClickListener(null); + holder.binding.textCount.setOnClickListener(new textCountOnClickListener(holder.binding, slot.getCount())); holder.binding.textDelete.setOnClickListener(new textDeleteOnClickListener(position)); holder.binding.editCount.setOnEditorActionListener(new editCountOnEditorActionListener(holder.binding, position)); holder.binding.editCount.setOnClickListener(new editCountOnClickListener(holder.binding, slot.getCount())); diff --git a/app/src/main/java/com/unibuy/smartdevice/ui/devs/vmc/VmcSlotListActivity.java b/app/src/main/java/com/unibuy/smartdevice/ui/devs/vmc/VmcSlotListActivity.java index c144f4e..6118716 100644 --- a/app/src/main/java/com/unibuy/smartdevice/ui/devs/vmc/VmcSlotListActivity.java +++ b/app/src/main/java/com/unibuy/smartdevice/ui/devs/vmc/VmcSlotListActivity.java @@ -9,7 +9,7 @@ import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; -import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.GridLayoutManager; import com.unibuy.smartdevice.AppCompatActivityAbstract; import com.unibuy.smartdevice.MyApp; @@ -127,7 +127,7 @@ public class VmcSlotListActivity extends AppCompatActivityAbstract { recyclerVmcSlotListAdpter = new RecyclerVmcSlotListAdpter(this, resultLauncher, MyApp.getInstance().getSlotList(SlotField.VMC.getField())); binding.recyclerSlotList.setAdapter(recyclerVmcSlotListAdpter); - binding.recyclerSlotList.setLayoutManager(new LinearLayoutManager(this)); + binding.recyclerSlotList.setLayoutManager(new GridLayoutManager(this, 3)); // dataShow(); diff --git a/app/src/main/res/layout/recycler_vmc_slot_list.xml b/app/src/main/res/layout/recycler_vmc_slot_list.xml index 9900224..e5b6c74 100644 --- a/app/src/main/res/layout/recycler_vmc_slot_list.xml +++ b/app/src/main/res/layout/recycler_vmc_slot_list.xml @@ -1,104 +1,199 @@ - + android:layout_margin="6dp" + app:cardCornerRadius="8dp" + app:cardElevation="3dp" + app:cardBackgroundColor="@color/background" + app:strokeColor="@color/outline" + app:strokeWidth="1dp"> - + android:layout_height="wrap_content" + android:padding="15dp"> + + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="@color/black" + android:textSize="18sp" + android:textStyle="bold" + android:text="1" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintBottom_toBottomOf="@+id/layoutLock" /> + + + + + + + + + + + + app:layout_constraintTop_toBottomOf="@id/imageProduct" + android:layout_marginTop="0dp" /> + + + + + + + + + + + android:textSize="22sp" + android:textStyle="bold" + android:textColor="@color/black" + android:text="0" + app:layout_constraintTop_toTopOf="@+id/buttonCountMinus" + app:layout_constraintBottom_toBottomOf="@+id/buttonCountMinus" + app:layout_constraintStart_toEndOf="@+id/buttonCountMinus" + app:layout_constraintEnd_toStartOf="@+id/buttonCountPlus" /> - + android:background="@android:color/transparent" + app:layout_constraintTop_toTopOf="@+id/buttonCountMinus" + app:layout_constraintBottom_toBottomOf="@+id/buttonCountMinus" + app:layout_constraintStart_toEndOf="@+id/buttonCountMinus" + app:layout_constraintEnd_toStartOf="@+id/buttonCountPlus" /> + + + + + +