diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9e439db..965af90 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,6 +3,16 @@
diff --git a/app/build.gradle b/app/build.gradle
index 7f42071..7a9270f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -36,6 +36,7 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+ def fragment_version = "1.4.1"
// okhttp
implementation('com.squareup.okhttp3:okhttp:5.0.0-alpha.7')
implementation 'com.google.code.gson:gson:2.9.0'
@@ -59,4 +60,8 @@ dependencies {
//material3
implementation 'com.google.android.material:material:1.5.0'
+ //fragment
+ implementation "androidx.fragment:fragment:$fragment_version"
+
+
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bf6b623..43d710f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -33,7 +33,13 @@
tools:targetApi="31">
+ android:exported="false" >
+
+
+
+
+
+
@@ -45,12 +51,6 @@
-
-
-
-
-
-
diff --git a/app/src/main/java/com/android/activity/HomePageActivity.java b/app/src/main/java/com/android/activity/HomePageActivity.java
index fded617..f2f5027 100644
--- a/app/src/main/java/com/android/activity/HomePageActivity.java
+++ b/app/src/main/java/com/android/activity/HomePageActivity.java
@@ -1,16 +1,77 @@
package com.android.activity;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
+import android.util.Log;
+import android.view.MenuItem;
+import android.widget.Button;
import com.android.R;
+import com.android.activity.fragment.HomePageFragment;
+import com.android.activity.fragment.MessagePageFragment;
+import com.android.activity.fragment.MyPageFragment;
+import com.android.activity.fragment.ShopCarPageFragment;
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.google.android.material.navigation.NavigationBarView;
+import com.google.android.material.navigation.NavigationView;
+
+public class HomePageActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener{
+
+ private BottomNavigationView navigation;
+ private FragmentTransaction fragmentTransaction;
-public class HomePageActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_page);
+
+
+ navigation = findViewById(R.id.bottom_navigation);
+ navigation.setLabelVisibilityMode(NavigationBarView.LABEL_VISIBILITY_LABELED);
+ navigation.setSelectedItemId(R.id.item_home);
+ //首次加载到home活动
+ //开始碎片事务
+ fragmentTransaction =
+ getSupportFragmentManager().beginTransaction();
+ fragmentTransaction.add(R.id.fragment_container,new HomePageFragment());
+ //提交事务
+ fragmentTransaction.commit();
+
+ //设置低航栏的点击事件
+ navigation.setOnNavigationItemSelectedListener(this);
+
+
+ }
+
+ @Override
+ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
+ //开始碎片事务
+ fragmentTransaction =
+ getSupportFragmentManager().beginTransaction();
+ switch (item.getItemId()) {
+ case R.id.item_message:
+ fragmentTransaction.replace(R.id.fragment_container, new MessagePageFragment());
+ //提交事务
+
+ fragmentTransaction.commit();
+ break;
+ case R.id.item_my:
+ fragmentTransaction.replace(R.id.fragment_container, new MyPageFragment());
+ fragmentTransaction.commit();
+ break;
+ case R.id.item_shop:
+ fragmentTransaction.replace(R.id.fragment_container, new ShopCarPageFragment());
+ fragmentTransaction.commit();
+ break;
+ case R.id.item_home:
+ fragmentTransaction.replace(R.id.fragment_container, new HomePageFragment());
+ fragmentTransaction.commit();
+ break;
+ }
+ return true;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/android/activity/fragment/HomePageFragment.java b/app/src/main/java/com/android/activity/fragment/HomePageFragment.java
new file mode 100644
index 0000000..96c9d35
--- /dev/null
+++ b/app/src/main/java/com/android/activity/fragment/HomePageFragment.java
@@ -0,0 +1,45 @@
+package com.android.activity.fragment;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ *com.android.activity.fragment.HomePageFragment
+ * create an instance of this fragment.
+ */
+public class HomePageFragment extends Fragment {
+ private Context context = null;
+
+
+
+ public HomePageFragment() {
+ // Required empty public constructor
+ }
+
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ context = getActivity();
+
+ View rootView = inflater.inflate(R.layout.fragment_home_page,
+ container, false);
+ return rootView;
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/android/activity/fragment/MessagePageFragment.java b/app/src/main/java/com/android/activity/fragment/MessagePageFragment.java
new file mode 100644
index 0000000..31b9656
--- /dev/null
+++ b/app/src/main/java/com/android/activity/fragment/MessagePageFragment.java
@@ -0,0 +1,66 @@
+package com.android.activity.fragment;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link MessagePageFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class MessagePageFragment extends Fragment {
+
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ public MessagePageFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment MessagePageFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static MessagePageFragment newInstance(String param1, String param2) {
+ MessagePageFragment fragment = new MessagePageFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_message_page, container, false);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/android/activity/fragment/MyPageFragment.java b/app/src/main/java/com/android/activity/fragment/MyPageFragment.java
new file mode 100644
index 0000000..ff87668
--- /dev/null
+++ b/app/src/main/java/com/android/activity/fragment/MyPageFragment.java
@@ -0,0 +1,66 @@
+package com.android.activity.fragment;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link MyPageFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class MyPageFragment extends Fragment {
+
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ public MyPageFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment MyPageFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static MyPageFragment newInstance(String param1, String param2) {
+ MyPageFragment fragment = new MyPageFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_my_page, container, false);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/android/activity/fragment/ShopCarPageFragment.java b/app/src/main/java/com/android/activity/fragment/ShopCarPageFragment.java
new file mode 100644
index 0000000..0bda762
--- /dev/null
+++ b/app/src/main/java/com/android/activity/fragment/ShopCarPageFragment.java
@@ -0,0 +1,66 @@
+package com.android.activity.fragment;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link ShopCarPageFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class ShopCarPageFragment extends Fragment {
+
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ public ShopCarPageFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment ShopPageFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static ShopCarPageFragment newInstance(String param1, String param2) {
+ ShopCarPageFragment fragment = new ShopCarPageFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_shop_page, container, false);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/android/utils/watcher/MyWatcher.java b/app/src/main/java/com/android/utils/watcher/MyWatcher.java
index bd4effa..d89910d 100644
--- a/app/src/main/java/com/android/utils/watcher/MyWatcher.java
+++ b/app/src/main/java/com/android/utils/watcher/MyWatcher.java
@@ -34,6 +34,9 @@ public class MyWatcher implements TextWatcher {
//注册按钮
registerButton.setOnClickListener(loginActivity);
}
+ else {
+ getVerificationCode.setEnabled(false);
+ }
}
diff --git a/app/src/main/res/drawable/baseline_account_circle_18.xml b/app/src/main/res/drawable/baseline_account_circle_18.xml
new file mode 100644
index 0000000..80d8add
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_account_circle_18.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_account_circle_20.xml b/app/src/main/res/drawable/baseline_account_circle_20.xml
new file mode 100644
index 0000000..1655e81
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_account_circle_20.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_account_circle_24.xml b/app/src/main/res/drawable/baseline_account_circle_24.xml
new file mode 100644
index 0000000..6476320
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_account_circle_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_explore_24.xml b/app/src/main/res/drawable/baseline_explore_24.xml
new file mode 100644
index 0000000..0ac168a
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_explore_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_favorite_24.xml b/app/src/main/res/drawable/baseline_favorite_24.xml
new file mode 100644
index 0000000..52d4d9b
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_favorite_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_feedback_24.xml b/app/src/main/res/drawable/baseline_feedback_24.xml
new file mode 100644
index 0000000..170a74b
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_feedback_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_home_20.xml b/app/src/main/res/drawable/baseline_home_20.xml
new file mode 100644
index 0000000..a6bb5c9
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_home_20.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_home_24.xml b/app/src/main/res/drawable/baseline_home_24.xml
new file mode 100644
index 0000000..3a4c7da
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_home_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_search_20.xml b/app/src/main/res/drawable/baseline_search_20.xml
new file mode 100644
index 0000000..cba96bc
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_search_20.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_search_24.xml b/app/src/main/res/drawable/baseline_search_24.xml
new file mode 100644
index 0000000..07b76d6
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_search_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_shopping_cart_24.xml b/app/src/main/res/drawable/baseline_shopping_cart_24.xml
new file mode 100644
index 0000000..cf0dcc8
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_shopping_cart_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_home_page.xml b/app/src/main/res/layout/activity_home_page.xml
index 9a15f40..cc8fb18 100644
--- a/app/src/main/res/layout/activity_home_page.xml
+++ b/app/src/main/res/layout/activity_home_page.xml
@@ -1,9 +1,32 @@
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 9971116..060c2c0 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -4,43 +4,81 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:padding="8dp"
tools:context=".activity.LoginActivity">
+
+
+
+
-
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/login_ic_layout">
+
+
+
+
-
+
+
+ android:hint="验证码">
+
+
+
+
+ app:layout_constraintStart_toStartOf="parent"
+ android:layout_marginLeft="12dp"
+ android:layout_marginRight="12dp"
+ app:layout_constraintTop_toBottomOf="@id/login_code_layout"
+ android:layout_marginTop="4dp">
+
+ android:textSize="24sp" />
+
+ android:textSize="24sp" />
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home_page.xml b/app/src/main/res/layout/fragment_home_page.xml
new file mode 100644
index 0000000..445105c
--- /dev/null
+++ b/app/src/main/res/layout/fragment_home_page.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_message_page.xml b/app/src/main/res/layout/fragment_message_page.xml
new file mode 100644
index 0000000..71e4e0e
--- /dev/null
+++ b/app/src/main/res/layout/fragment_message_page.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_my_page.xml b/app/src/main/res/layout/fragment_my_page.xml
new file mode 100644
index 0000000..99f0059
--- /dev/null
+++ b/app/src/main/res/layout/fragment_my_page.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_shop_page.xml b/app/src/main/res/layout/fragment_shop_page.xml
new file mode 100644
index 0000000..8199094
--- /dev/null
+++ b/app/src/main/res/layout/fragment_shop_page.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/bottom_navigation_menu.xml b/app/src/main/res/menu/bottom_navigation_menu.xml
new file mode 100644
index 0000000..1c84051
--- /dev/null
+++ b/app/src/main/res/menu/bottom_navigation_menu.xml
@@ -0,0 +1,26 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-night/myTheme.xml b/app/src/main/res/values-night/myTheme.xml
new file mode 100644
index 0000000..16d1d87
--- /dev/null
+++ b/app/src/main/res/values-night/myTheme.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7bc3de8..52b2d42 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,6 @@
Android_Couser_Design
+
+ Hello blank fragment
+
\ No newline at end of file