Procházet zdrojové kódy

1.修改Android Apex Drivers首页布局。

Pen Li před 7 roky
rodič
revize
35d748de37

+ 89 - 1
ApexDrivers/app/src/main/java/com/usai/redant/apexdrivers/Home/HomeFragment.java

@@ -5,6 +5,7 @@ import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.graphics.Color;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -13,13 +14,17 @@ import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.app.AlertDialog;
+import android.util.Log;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.BaseExpandableListAdapter;
 import android.widget.Button;
 import android.widget.ExpandableListView;
 import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 
 
@@ -33,6 +38,9 @@ import org.json.JSONObject;
 
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
+import java.util.Date;
+import java.util.Timer;
+import java.util.TimerTask;
 
 public class HomeFragment extends Fragment {
 
@@ -48,6 +56,7 @@ public class HomeFragment extends Fragment {
     private HomeHandler mHandler = new HomeHandler(this);
     private HomeBroadCastReceiver mReceiver;
     private JSONObject mJson;
+    private HomeOrderModel mSelectedModel;
 
     @Nullable
     @Override
@@ -90,6 +99,7 @@ public class HomeFragment extends Fragment {
             }
         });
 
+
         mRefresh = view.findViewById(R.id.home_refresh);
         mRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
             @Override
@@ -387,13 +397,18 @@ public class HomeFragment extends Fragment {
             }
         }
 
-        private class OrderCellHolder {
+        private class OrderCellHolder implements OrderModelDelegate,View.OnTouchListener {
 
             TextView titleTv, orderNoTv, containerNoTv, dateTv;
             ImageView statusView, markView;
+            RelativeLayout contentContainer;
+
+            WeakReference<HomeOrderModel> weakModel;
+
 
             OrderCellHolder(View view) {
 
+                contentContainer = view.findViewById(R.id.content_container);
                 titleTv = view.findViewById(R.id.title_tv);
                 orderNoTv = view.findViewById(R.id.order_no_tv);
                 containerNoTv = view.findViewById(R.id.container_no_tv);
@@ -401,11 +416,36 @@ public class HomeFragment extends Fragment {
                 statusView = view.findViewById(R.id.status_view);
                 markView = view.findViewById(R.id.order_mark_view);
 
+                contentContainer.setOnTouchListener(this);
+
                 view.setTag(this);
             }
 
             void bindOrderModel(HomeOrderModel model) {
 
+                if (weakModel != null) {
+                    weakModel.get().delegate = null;
+                }
+
+                if (model != null) {
+                    weakModel = new WeakReference<>(model);
+                    weakModel.get().delegate = this;
+                } else {
+                    weakModel = null;
+                }
+
+                refresh();
+
+            }
+
+            @Override
+            public void refresh() {
+
+                if (weakModel == null) {
+                    return;
+                }
+
+                HomeOrderModel model = weakModel.get();
                 titleTv.setText(model.title);
                 orderNoTv.setText(model.orderNo);
                 containerNoTv.setText(model.containerNo);
@@ -416,6 +456,39 @@ public class HomeFragment extends Fragment {
                 } else {
                     markView.setVisibility(View.GONE);
                 }
+
+                if (!model.selected) {
+                    contentContainer.setBackgroundResource(R.drawable.round_corner_bg);
+                } else {
+                    contentContainer.setBackgroundResource(R.drawable.round_corner_selection_bg);
+                }
+
+            }
+
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+
+                select();
+
+                return false;
+            }
+
+            public void select() {
+
+                if (mSelectedModel != null && mSelectedModel != weakModel.get()) {
+                    mSelectedModel.setSelection(false);
+                }
+
+                if (weakModel != null) {
+                    mSelectedModel = weakModel.get();
+                } else {
+                    mSelectedModel = null;
+                }
+
+                if (mSelectedModel != null) {
+                    mSelectedModel.setSelection(true);
+                }
+
             }
         }
 
@@ -549,7 +622,22 @@ public class HomeFragment extends Fragment {
        String containerNo;
        String date;
        String orderID;
+       boolean selected;
+
+       OrderModelDelegate delegate;
+
+       public void setSelection(boolean selection) {
+           selected = selection;
+
+           if (delegate != null) {
+               delegate.refresh();
+           }
+       }
+
+    }
 
+    public interface OrderModelDelegate {
+        void refresh();
     }
 
     private class HomeSectionModel {

+ 13 - 0
ApexDrivers/app/src/main/res/drawable-v24/round_corner_bg.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <corners android:radius="5dp"/>
+
+    <solid android:color="#ffffff"/>
+
+    <stroke
+        android:width="1dp"
+        android:color="#aaaaaa"
+        />
+
+</shape>

+ 13 - 0
ApexDrivers/app/src/main/res/drawable-v24/round_corner_selection_bg.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <corners android:radius="5dp"/>
+
+    <solid android:color="#ff0000"/>
+
+    <stroke
+        android:width="1dp"
+        android:color="#ff0000"
+        />
+
+</shape>

+ 1 - 0
ApexDrivers/app/src/main/res/layout/fragment_home.xml

@@ -16,6 +16,7 @@
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:groupIndicator="@null"
+            android:divider="@null"
             >
 
         </ExpandableListView>

+ 110 - 100
ApexDrivers/app/src/main/res/layout/home_order_cell.xml

@@ -3,115 +3,125 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content">
 
-    <ImageView
-        android:id="@+id/order_mark_view"
-        android:layout_width="20dp"
-        android:layout_height="20dp"
-        android:layout_alignParentRight="true"
-        android:layout_marginRight="5dp"
-        android:layout_marginTop="5dp"
-        android:visibility="gone"
-        />
-
-    <TextView
-        android:id="@+id/title_tv"
+    <RelativeLayout
+        android:id="@+id/content_container"
         android:layout_width="match_parent"
-        android:layout_height="20dp"
+        android:layout_height="wrap_content"
         android:layout_margin="5dp"
-        android:layout_toLeftOf="@id/order_mark_view"
-        android:textSize="17sp"
-        android:textColor="#000000"
-        android:text="Pickup Order New"
-        />
+        android:background="@drawable/round_corner_bg"
+        >
 
-    <ImageView
-        android:id="@+id/status_view"
-        android:layout_width="70dp"
-        android:layout_height="70dp"
-        android:layout_below="@id/title_tv"
-        android:layout_marginLeft="5dp"
-        android:layout_marginRight="5dp"
-        />
+        <ImageView
+            android:id="@+id/order_mark_view"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="5dp"
+            android:layout_marginTop="5dp"
+            android:visibility="gone"
+            />
 
-    <TextView
-        android:id="@+id/order_no_key_tv"
-        android:layout_width="wrap_content"
-        android:layout_height="20dp"
-        android:layout_alignTop="@id/status_view"
-        android:layout_toRightOf="@id/status_view"
-        android:layout_marginRight="2dp"
-        android:textSize="17sp"
-        android:textColor="#000000"
-        android:text="Order No.:"
-        />
+        <TextView
+            android:id="@+id/title_tv"
+            android:layout_width="match_parent"
+            android:layout_height="20dp"
+            android:layout_margin="5dp"
+            android:layout_toLeftOf="@id/order_mark_view"
+            android:textSize="17sp"
+            android:textColor="#000000"
+            android:text="Pickup Order New"
+            />
 
-    <TextView
-        android:id="@+id/order_no_tv"
-        android:layout_width="match_parent"
-        android:layout_height="20dp"
-        android:layout_alignTop="@id/status_view"
-        android:layout_toRightOf="@id/order_no_key_tv"
-        android:layout_alignParentRight="true"
-        android:layout_marginRight="5dp"
-        android:textSize="17sp"
-        android:textColor="#000000"
-        android:text="AFS180530001200"
-        />
+        <ImageView
+            android:id="@+id/status_view"
+            android:layout_width="70dp"
+            android:layout_height="70dp"
+            android:layout_below="@id/title_tv"
+            android:layout_marginLeft="5dp"
+            android:layout_marginRight="5dp"
+            />
 
-    <TextView
-        android:id="@+id/container_no_key_tv"
-        android:layout_width="wrap_content"
-        android:layout_height="20dp"
-        android:layout_below="@id/order_no_tv"
-        android:layout_toRightOf="@id/status_view"
-        android:layout_marginRight="2dp"
-        android:layout_marginTop="5dp"
-        android:textSize="17sp"
-        android:textColor="#000000"
-        android:text="Container No.:"
-        />
+        <TextView
+            android:id="@+id/order_no_key_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:layout_alignTop="@id/status_view"
+            android:layout_toRightOf="@id/status_view"
+            android:layout_marginRight="2dp"
+            android:textSize="17sp"
+            android:textColor="#000000"
+            android:text="Order No.:"
+            />
 
-    <TextView
-        android:id="@+id/container_no_tv"
-        android:layout_width="match_parent"
-        android:layout_height="20dp"
-        android:layout_below="@id/order_no_tv"
-        android:layout_toRightOf="@id/container_no_key_tv"
-        android:layout_alignParentRight="true"
-        android:layout_marginRight="5dp"
-        android:layout_marginTop="5dp"
-        android:textSize="17sp"
-        android:textColor="#000000"
-        android:text="TCNU6432476"
-        />
+        <TextView
+            android:id="@+id/order_no_tv"
+            android:layout_width="match_parent"
+            android:layout_height="20dp"
+            android:layout_alignTop="@id/status_view"
+            android:layout_toRightOf="@id/order_no_key_tv"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="5dp"
+            android:textSize="17sp"
+            android:textColor="#000000"
+            android:text="AFS180530001200"
+            />
 
-    <TextView
-        android:id="@+id/date_key_tv"
-        android:layout_width="wrap_content"
-        android:layout_height="20dp"
-        android:layout_below="@id/container_no_tv"
-        android:layout_toRightOf="@id/status_view"
-        android:layout_marginRight="2dp"
-        android:layout_marginTop="5dp"
-        android:textSize="17sp"
-        android:textColor="#000000"
-        android:text="Date:"
-        />
+        <TextView
+            android:id="@+id/container_no_key_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:layout_below="@id/order_no_tv"
+            android:layout_toRightOf="@id/status_view"
+            android:layout_marginRight="2dp"
+            android:layout_marginTop="5dp"
+            android:textSize="17sp"
+            android:textColor="#000000"
+            android:text="Container No.:"
+            />
 
-    <TextView
-        android:id="@+id/date_tv"
-        android:layout_width="match_parent"
-        android:layout_height="20dp"
-        android:layout_below="@id/container_no_tv"
-        android:layout_toRightOf="@id/date_key_tv"
-        android:layout_alignParentRight="true"
-        android:layout_marginRight="5dp"
-        android:layout_marginTop="5dp"
-        android:layout_marginBottom="5dp"
-        android:textSize="17sp"
-        android:textColor="#000000"
-        android:text="5/30/2018"
-        />
+        <TextView
+            android:id="@+id/container_no_tv"
+            android:layout_width="match_parent"
+            android:layout_height="20dp"
+            android:layout_below="@id/order_no_tv"
+            android:layout_toRightOf="@id/container_no_key_tv"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="5dp"
+            android:layout_marginTop="5dp"
+            android:textSize="17sp"
+            android:textColor="#000000"
+            android:text="TCNU6432476"
+            />
+
+        <TextView
+            android:id="@+id/date_key_tv"
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:layout_below="@id/container_no_tv"
+            android:layout_toRightOf="@id/status_view"
+            android:layout_marginRight="2dp"
+            android:layout_marginTop="5dp"
+            android:textSize="17sp"
+            android:textColor="#000000"
+            android:text="Date:"
+            />
+
+        <TextView
+            android:id="@+id/date_tv"
+            android:layout_width="match_parent"
+            android:layout_height="20dp"
+            android:layout_below="@id/container_no_tv"
+            android:layout_toRightOf="@id/date_key_tv"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="5dp"
+            android:layout_marginTop="5dp"
+            android:layout_marginBottom="5dp"
+            android:textSize="17sp"
+            android:textColor="#000000"
+            android:text="5/30/2018"
+            />
+
+    </RelativeLayout>
 
 
 </RelativeLayout>