This commit is contained in:
Lixin 2024-12-23 00:21:33 +08:00
parent 97526598ea
commit aaa8f7bb0d
16 changed files with 681 additions and 18 deletions

View File

@ -0,0 +1,67 @@
package com.example.myapplication.Adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.example.myapplication.R;
import com.example.myapplication.dao.ShoptrolleyResult;
import java.util.List;
public class ShoppingTrolleyAdapter extends RecyclerView.Adapter<ShoppingTrolleyAdapter.ViewHolder> {
private List<ShoptrolleyResult.RowsBean> rowsBeans;
public ShoppingTrolleyAdapter(List<ShoptrolleyResult.RowsBean> rowsBeans) {
this.rowsBeans = rowsBeans;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.shopping_trolley_moban, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
ShoptrolleyResult.RowsBean rowsBean = rowsBeans.get(position);
holder.textView103.setText(rowsBean.shopname);
holder.textView104.setText(rowsBean.shopguige);
holder.textView105.setText(String.valueOf(rowsBean.price));
holder.textView106.setText(String.valueOf(rowsBean.shopnumber));
// 加载图片这里假设你使用 Glide
if (rowsBean.shoppicture != null) {
Glide.with(holder.itemView.getContext()).load(rowsBean.shoppicture).into(holder.imageView10);
}
}
@Override
public int getItemCount() {
return rowsBeans.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView textView103;
TextView textView104;
TextView textView105;
TextView textView106;
ImageView imageView10;
public ViewHolder(@NonNull View itemView) {
super(itemView);
textView103 = itemView.findViewById(R.id.textView103);
textView104 = itemView.findViewById(R.id.textView104);
textView105 = itemView.findViewById(R.id.textView105);
textView106 = itemView.findViewById(R.id.textView106);
imageView10 = itemView.findViewById(R.id.imageView10);
}
}
}

View File

@ -2,6 +2,8 @@ package com.example.myapplication;
import com.example.myapplication.dao.GoodsinformationResult; import com.example.myapplication.dao.GoodsinformationResult;
import com.example.myapplication.dao.LoginResult; import com.example.myapplication.dao.LoginResult;
import com.example.myapplication.dao.RecommendResult;
import com.example.myapplication.dao.ShoptrolleyResult;
import com.example.myapplication.dao.ShouyeshuiguoResult; import com.example.myapplication.dao.ShouyeshuiguoResult;
import com.example.myapplication.dao.UserInformationResult; import com.example.myapplication.dao.UserInformationResult;
import com.example.myapplication.dao.UserInformationResult2; import com.example.myapplication.dao.UserInformationResult2;
@ -37,4 +39,11 @@ public interface Api {
@GET("system/vip/list") @GET("system/vip/list")
Call<VipdataResult> getVipdata(@Header("Authorization") String token); Call<VipdataResult> getVipdata(@Header("Authorization") String token);
@GET("system/recommend/list")
Call<RecommendResult> getRecommend(@Header("Authorization") String token);
@GET("system/shopcar/list")
Call<ShoptrolleyResult> getShoptrolley(@Header("Authorization") String token);
} }

View File

@ -1,19 +1,136 @@
package com.example.myapplication; package com.example.myapplication;
import static android.content.Context.MODE_PRIVATE;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.myapplication.Utils.RetrofitUtils;
import com.example.myapplication.dao.RecommendResult;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class FindFragment extends Fragment { public class FindFragment extends Fragment {
private List<RecommendResult.RowsBean> list = new ArrayList<>();
private FindMyAdapter adapter;
private RecyclerView recyclerView;
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
// Inflate the layout for this fragment // Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_find, container, false); View view = inflater.inflate(R.layout.fragment_find, container, false);
recyclerView = view.findViewById(R.id.recyclerView2); // 假设你的 RecyclerView ID recyclerView
adapter = new FindMyAdapter(list);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE);
String token = sharedPreferences.getString("token", "");
Call<RecommendResult> recommendResultCall =
RetrofitUtils.getRetrofit("http://192.168.56.115:8080/").create(Api.class).getRecommend("Bearer " + token);
recommendResultCall.enqueue(new Callback<RecommendResult>() {
@Override
public void onResponse(Call<RecommendResult> call, Response<RecommendResult> response) {
RecommendResult recommendResult = response.body();
if (recommendResult != null) {
if (recommendResult.code == 200) {
// 清空原有数据
list.clear();
// 将新数据添加到列表中
for (RecommendResult.RowsBean rowsBean : recommendResult.rows) {
list.add(rowsBean);
}
adapter.notifyDataSetChanged();
} else if (recommendResult.code == 401) {
// 处理未授权的情况例如提示用户重新登录
Log.e("FindFragment", "Unauthorized access");
} else {
// 处理其他错误情况
Log.e("FindFragment", "Error code: " + recommendResult.code);
}
} else {
// 处理响应为空的情况
Log.e("FindFragment", "Response body is null");
}
}
@Override
public void onFailure(Call<RecommendResult> call, Throwable t) {
// 处理网络错误或其他异常
t.printStackTrace();
Log.e("FindFragment", "Network error: " + t.getMessage());
}
});
return view;
} }
}
// 创建 FindMyAdapter
public class FindMyAdapter extends RecyclerView.Adapter<FindMyAdapter.ViewHolder> {
private List<RecommendResult.RowsBean> rowsBeans;
public FindMyAdapter(List<RecommendResult.RowsBean> rowsBeans) {
this.rowsBeans = rowsBeans;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.find_moban, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
RecommendResult.RowsBean rowsBean = rowsBeans.get(position);
holder.textView80.setText(rowsBean.tuijianyu);
holder.textView101.setText(String.valueOf(rowsBean.tuijiannumber));
holder.textView102.setText(rowsBean.tuijianname);
// 加载图片这里假设你使用 Glide
if (rowsBean.picture != null) {
Glide.with(holder.itemView.getContext()).load(rowsBean.picture).into(holder.imageView8);
}
}
@Override
public int getItemCount() {
return rowsBeans.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView textView80;
TextView textView101;
TextView textView102;
ImageView imageView8;
public ViewHolder(View itemView) {
super(itemView);
textView80 = itemView.findViewById(R.id.textView80);
textView101 = itemView.findViewById(R.id.textView101);
textView102 = itemView.findViewById(R.id.textView102);
imageView8 = itemView.findViewById(R.id.imageView8);
}
}
}
}

View File

@ -18,6 +18,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.example.myapplication.Utils.RetrofitUtils; import com.example.myapplication.Utils.RetrofitUtils;
import com.example.myapplication.dao.GoodsinformationResult;
import com.example.myapplication.dao.ShouyeshuiguoResult; import com.example.myapplication.dao.ShouyeshuiguoResult;
import java.util.ArrayList; import java.util.ArrayList;
@ -47,6 +48,9 @@ public class HomeFragment extends Fragment {
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setAdapter(myAdapter); recyclerView.setAdapter(myAdapter);
// 调用 fetchAndSaveGoodsinformation 方法
fetchAndSaveGoodsinformation();
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE); SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE);
String token = sharedPreferences.getString("token", ""); String token = sharedPreferences.getString("token", "");
Call<ShouyeshuiguoResult> shouyeshuiguoResultCall = Call<ShouyeshuiguoResult> shouyeshuiguoResultCall =
@ -88,6 +92,48 @@ public class HomeFragment extends Fragment {
return view; return view;
} }
private void fetchAndSaveGoodsinformation() {
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE);
String token = sharedPreferences.getString("token", "");
Call<GoodsinformationResult> goodsinformationResultCall =
RetrofitUtils.getRetrofit("http://192.168.56.115:8080/").create(Api.class).getGoodsinformation("Bearer " + token);
goodsinformationResultCall.enqueue(new Callback<GoodsinformationResult>() {
@Override
public void onResponse(Call<GoodsinformationResult> call, Response<GoodsinformationResult> response) {
GoodsinformationResult goodsinformationResult = response.body();
if (goodsinformationResult != null) {
if (goodsinformationResult.code == 200) {
SharedPreferences.Editor editor = sharedPreferences.edit();
for (GoodsinformationResult.RowsBean rowsBean : goodsinformationResult.rows) {
editor.putString("supplier_" + rowsBean.goodsid, rowsBean.supplier);
editor.putString("standard_" + rowsBean.goodsid, rowsBean.standard);
editor.putString("locality_" + rowsBean.goodsid, rowsBean.locality);
editor.putString("qualityguaranteeperiod_" + rowsBean.goodsid, rowsBean.qualityguaranteeperiod);
editor.putString("particular_" + rowsBean.goodsid, rowsBean.particular);
editor.putString("picture1_" + rowsBean.goodsid, rowsBean.picture1);
editor.putString("picture2_" + rowsBean.goodsid, rowsBean.picture2);
editor.putString("picture3_" + rowsBean.goodsid, rowsBean.picture3);
editor.putString("goodsid_" + rowsBean.goodsid, rowsBean.goodsid.toString());
}
editor.apply();
} else if (goodsinformationResult.code == 401) {
Log.e("HomeFragment", "Unauthorized access");
} else {
Log.e("HomeFragment", "Error code: " + goodsinformationResult.code);
}
} else {
Log.e("HomeFragment", "Response body is null");
}
}
@Override
public void onFailure(Call<GoodsinformationResult> call, Throwable t) {
t.printStackTrace();
Log.e("HomeFragment", "Network error: " + t.getMessage());
}
});
}
public class MyViewHolder extends RecyclerView.ViewHolder { public class MyViewHolder extends RecyclerView.ViewHolder {
TextView textView1, textView2, textView3, textView4; TextView textView1, textView2, textView3, textView4;
ImageButton imageButton1; ImageButton imageButton1;
@ -135,14 +181,19 @@ public class HomeFragment extends Fragment {
.into(holder.imageButton1); .into(holder.imageButton1);
} }
holder.imageButton1.setOnClickListener(new View.OnClickListener() { holder.imageButton1.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
int clickedPosition = holder.getAdapterPosition(); int clickedPosition = holder.getAdapterPosition();
if (clickedPosition != RecyclerView.NO_POSITION) { if (clickedPosition != RecyclerView.NO_POSITION) {
Intent intent = new Intent(HomeFragment.this.getActivity(), shuiguoxiangqingActivity.class); Intent intent = new Intent(HomeFragment.this.getActivity(), shuiguoxiangqingActivity.class);
intent.putExtra("id", list.get(clickedPosition).picture); ShouyeshuiguoResult.RowsBean item = list.get(clickedPosition);
intent.putExtra("picture", item.picture);
intent.putExtra("price", item.price);
intent.putExtra("goodsname", item.goodsname);
intent.putExtra("time1", item.time1);
intent.putExtra("time2", item.time2);
intent.putExtra("goodsid", item.goodsId); // 添加这一行
startActivity(intent); startActivity(intent);
} }
} }

View File

@ -1,19 +1,84 @@
package com.example.myapplication; package com.example.myapplication;
import static android.content.Context.MODE_PRIVATE;
import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.example.myapplication.Adapter.ShoppingTrolleyAdapter;
import com.example.myapplication.Utils.RetrofitUtils;
import com.example.myapplication.dao.ShoptrolleyResult;
import java.util.ArrayList;
import java.util.List;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class ShoppingTrolleyFragment extends Fragment { public class ShoppingTrolleyFragment extends Fragment {
private List<ShoptrolleyResult.RowsBean> list = new ArrayList<>();
private ShoppingTrolleyAdapter adapter;
private RecyclerView recyclerView;
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
// Inflate the layout for this fragment // Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_shopping_trolley, container, false); View view = inflater.inflate(R.layout.fragment_shopping_trolley, container, false);
recyclerView = view.findViewById(R.id.recyclerView3); // 假设你的 RecyclerView ID recyclerView
adapter = new ShoppingTrolleyAdapter(list);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
SharedPreferences sharedPreferences = getActivity().getSharedPreferences("data", MODE_PRIVATE);
String token = sharedPreferences.getString("token", "");
Call<ShoptrolleyResult> shoptrolleyResultCall =
RetrofitUtils.getRetrofit("http://192.168.56.115:8080/").create(Api.class).getShoptrolley("Bearer " + token);
shoptrolleyResultCall.enqueue(new Callback<ShoptrolleyResult>() {
@Override
public void onResponse(Call<ShoptrolleyResult> call, Response<ShoptrolleyResult> response) {
ShoptrolleyResult shoptrolleyResult = response.body();
if (shoptrolleyResult != null) {
if (shoptrolleyResult.code == 200) {
// 清空原有数据
list.clear();
// 将新数据添加到列表中
for (ShoptrolleyResult.RowsBean rowsBean : shoptrolleyResult.rows) {
list.add(rowsBean);
}
adapter.notifyDataSetChanged();
} else if (shoptrolleyResult.code == 401) {
// 处理未授权的情况例如提示用户重新登录
Log.e("ShoppingTrolleyFragment", "Unauthorized access");
} else {
// 处理其他错误情况
Log.e("ShoppingTrolleyFragment", "Error: " + shoptrolleyResult.code);
}
} else {
// 处理响应为空的情况
Log.e("ShoppingTrolleyFragment", "Response is null");
}
}
@Override
public void onFailure(Call<ShoptrolleyResult> call, Throwable t) {
// 处理网络错误或其他异常
t.printStackTrace();
Log.e("ShoppingTrolleyFragment", "Network error: " + t.getMessage());
}
});
return view;
} }
} }

View File

@ -0,0 +1,47 @@
package com.example.myapplication.dao;
import com.google.gson.annotations.SerializedName;
import java.util.List;
import lombok.Data;
import lombok.NoArgsConstructor;
@lombok.NoArgsConstructor
@lombok.Data
public class RecommendResult {
@SerializedName("total")
public Integer total;
@SerializedName("rows")
public List<RowsBean> rows;
@SerializedName("code")
public Integer code;
@SerializedName("msg")
public String msg;
@lombok.NoArgsConstructor
@lombok.Data
public static class RowsBean {
@SerializedName("createBy")
public Object createBy;
@SerializedName("createTime")
public Object createTime;
@SerializedName("updateBy")
public Object updateBy;
@SerializedName("updateTime")
public Object updateTime;
@SerializedName("remark")
public Object remark;
@SerializedName("id")
public Integer id;
@SerializedName("tuijianname")
public String tuijianname;
@SerializedName("tuijiannumber")
public Integer tuijiannumber;
@SerializedName("tuijianyu")
public String tuijianyu;
@SerializedName("picture")
public Object picture;
}
}

View File

@ -0,0 +1,49 @@
package com.example.myapplication.dao;
import com.google.gson.annotations.SerializedName;
import java.util.List;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@Data
public class ShoptrolleyResult {
@SerializedName("total")
public Integer total;
@SerializedName("rows")
public List<RowsBean> rows;
@SerializedName("code")
public Integer code;
@SerializedName("msg")
public String msg;
@NoArgsConstructor
@Data
public static class RowsBean {
@SerializedName("createBy")
public Object createBy;
@SerializedName("createTime")
public Object createTime;
@SerializedName("updateBy")
public Object updateBy;
@SerializedName("updateTime")
public Object updateTime;
@SerializedName("remark")
public Object remark;
@SerializedName("id")
public Integer id;
@SerializedName("shopname")
public String shopname;
@SerializedName("shopguige")
public String shopguige;
@SerializedName("price")
public Double price;
@SerializedName("shopnumber")
public Integer shopnumber;
@SerializedName("shoppicture")
public Object shoppicture;
}
}

View File

@ -2,10 +2,15 @@ package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.content.Intent; import android.content.Intent;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
public class shuiguoxiangqingActivity extends AppCompatActivity { public class shuiguoxiangqingActivity extends AppCompatActivity {
@ -14,6 +19,71 @@ public class shuiguoxiangqingActivity extends AppCompatActivity {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shuiguoxiangqing); setContentView(R.layout.activity_shuiguoxiangqing);
// 获取传递过来的数据
Intent intent = getIntent();
String picture = intent.getStringExtra("picture");
double price = intent.getDoubleExtra("price", 0.0);
String goodsname = intent.getStringExtra("goodsname");
String time1 = intent.getStringExtra("time1");
String time2 = intent.getStringExtra("time2");
int goodsid = intent.getIntExtra("goodsid", -1); // 添加这一行来获取 goodsid
// 设置数据到视图组件
ImageView imageView7 = findViewById(R.id.imageView7);
TextView textView81 = findViewById(R.id.textView81);
TextView textView84 = findViewById(R.id.textView84);
TextView textView88 = findViewById(R.id.textView88);
TextView textView89 = findViewById(R.id.textView89);
// 使用 Glide 加载图片
if (picture != null && !picture.isEmpty()) {
Glide.with(this).load(picture).into(imageView7);
}
textView81.setText(String.valueOf(price));
textView84.setText(goodsname);
textView88.setText(time1);
textView89.setText(time2);
// SharedPreferences 中获取数据
SharedPreferences sharedPreferences = getSharedPreferences("data", MODE_PRIVATE);
String supplier = sharedPreferences.getString("supplier_" + goodsid, "");
String standard = sharedPreferences.getString("standard_" + goodsid, "");
String locality = sharedPreferences.getString("locality_" + goodsid, "");
String qualityguaranteeperiod = sharedPreferences.getString("qualityguaranteeperiod_" + goodsid, "");
String particular = sharedPreferences.getString("particular_" + goodsid, "");
String picture1 = sharedPreferences.getString("picture1_" + goodsid, "");
String picture2 = sharedPreferences.getString("picture2_" + goodsid, "");
String picture3 = sharedPreferences.getString("picture3_" + goodsid, "");
// 设置数据到视图组件
TextView textView95 = findViewById(R.id.textView95);
TextView textView96 = findViewById(R.id.textView96);
TextView textView97 = findViewById(R.id.textView97);
TextView textView98 = findViewById(R.id.textView98);
TextView textView100 = findViewById(R.id.textView100);
ImageView imageView13 = findViewById(R.id.imageView13);
ImageView imageView14 = findViewById(R.id.imageView14);
ImageView imageView15 = findViewById(R.id.imageView15);
textView95.setText(supplier);
textView96.setText(standard);
textView97.setText(locality);
textView98.setText(qualityguaranteeperiod);
textView100.setText(particular);
if (picture1 != null && !picture1.isEmpty()) {
Glide.with(this).load(picture1).into(imageView13);
}
if (picture2 != null && !picture2.isEmpty()) {
Glide.with(this).load(picture2).into(imageView14);
}
if (picture3 != null && !picture3.isEmpty()) {
Glide.with(this).load(picture3).into(imageView15);
}
//返回 //返回
ImageButton imageButton = findViewById(R.id.imageButton31); ImageButton imageButton = findViewById(R.id.imageButton31);
imageButton.setOnClickListener(new View.OnClickListener() { imageButton.setOnClickListener(new View.OnClickListener() {

Binary file not shown.

After

Width:  |  Height:  |  Size: 906 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 B

View File

@ -112,20 +112,11 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="405dp" android:layout_width="405dp"
android:layout_height="1300dp" android:layout_height="2000dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/textView79"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<ImageView <ImageView
android:id="@+id/imageView7" android:id="@+id/imageView7"
android:layout_width="430dp" android:layout_width="430dp"
@ -418,13 +409,43 @@
android:layout_height="140dp" android:layout_height="140dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:text="100" android:text="100"
android:textStyle="bold"
android:textColor="#000000" android:textColor="#000000"
android:textSize="18dp" android:textSize="18dp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView99" /> app:layout_constraintTop_toBottomOf="@+id/textView99" />
<ImageView
android:id="@+id/imageView13"
android:layout_width="400dp"
android:layout_height="300dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView100"
app:srcCompat="@drawable/ic_launcher_background" />
<ImageView
android:id="@+id/imageView14"
android:layout_width="400dp"
android:layout_height="300dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView13"
app:srcCompat="@drawable/ic_launcher_background" />
<ImageView
android:id="@+id/imageView15"
android:layout_width="400dp"
android:layout_height="300dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView14"
app:srcCompat="@drawable/ic_launcher_background" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>

View File

@ -1,6 +1,72 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="180dp">
<androidx.cardview.widget.CardView
android:layout_width="396dp"
android:layout_height="170dp"
android:layout_marginStart="1dp"
android:layout_marginTop="1dp"
android:layout_marginEnd="1dp"
android:layout_marginBottom="1dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" >
<ImageView
android:id="@+id/imageView8"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
app:srcCompat="@drawable/ic_launcher_background" />
<TextView
android:id="@+id/textView80"
android:layout_width="210dp"
android:layout_height="90dp"
android:layout_marginLeft="175dp"
android:layout_marginTop="10dp"
android:text="TextView"
android:textColor="#000000"
android:textSize="18dp"
android:gravity="top|start"
android:textStyle="bold" />
<ImageView
android:id="@+id/imageView9"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="360dp"
android:layout_marginTop="126dp"
app:srcCompat="@drawable/zhuanfa" />
<TextView
android:id="@+id/textView101"
android:layout_width="86dp"
android:layout_height="30dp"
android:layout_marginLeft="273dp"
android:layout_marginTop="126dp"
android:textColor="#000000"
android:textSize="18dp"
android:textStyle="bold"
android:gravity="center"
android:text="TextView" />
<TextView
android:id="@+id/textView102"
android:layout_width="100dp"
android:layout_height="30dp"
android:layout_marginLeft="170dp"
android:layout_marginTop="126dp"
android:textColor="#FFA000"
android:textSize="18dp"
android:textStyle="bold"
android:gravity="center"
android:text="TextView" />
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -76,6 +76,7 @@
app:layout_constraintStart_toStartOf="parent"> app:layout_constraintStart_toStartOf="parent">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView2"
android:layout_width="407dp" android:layout_width="407dp"
android:layout_height="550dp" android:layout_height="550dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"

View File

@ -77,6 +77,14 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout11"> app:layout_constraintTop_toBottomOf="@+id/constraintLayout11">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView3"
android:layout_width="407dp"
android:layout_height="627dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="130dp">
<androidx.cardview.widget.CardView
android:layout_width="396dp"
android:layout_height="120dp"
android:layout_marginStart="1dp"
android:layout_marginTop="1dp"
android:layout_marginEnd="1dp"
android:layout_marginBottom="1dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" >
<ImageView
android:id="@+id/imageView10"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
app:srcCompat="@drawable/ic_launcher_background" />
<TextView
android:id="@+id/textView103"
android:layout_width="130dp"
android:layout_height="33dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="120dp"
android:text="TextView"
android:textColor="#000000"
android:textSize="18dp"
android:gravity="center"
android:textStyle="bold" />
<TextView
android:id="@+id/textView104"
android:layout_width="130dp"
android:layout_height="33dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="260dp"
android:text="TextView"
android:textColor="#000000"
android:textSize="18dp"
android:gravity="center"
android:textStyle="bold" />
<TextView
android:id="@+id/textView105"
android:layout_width="110dp"
android:layout_height="60dp"
android:layout_marginTop="50dp"
android:layout_marginLeft="130dp"
android:text="TextView"
android:textColor="#FF0000"
android:textSize="26dp"
android:gravity="center"
android:textStyle="bold" />
<ImageView
android:id="@+id/imageView11"
android:layout_width="39dp"
android:layout_height="39dp"
android:layout_marginTop="65dp"
android:layout_marginLeft="260dp"
app:srcCompat="@drawable/jianhao" />
<ImageView
android:id="@+id/imageView12"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginTop="66dp"
android:layout_marginLeft="340dp"
app:srcCompat="@drawable/jiahao" />
<TextView
android:id="@+id/textView106"
android:layout_width="70dp"
android:layout_height="36dp"
android:layout_marginTop="66dp"
android:layout_marginLeft="283dp"
android:textColor="#000000"
android:textSize="26dp"
android:gravity="center"
android:textStyle="bold"
android:text="TextView" />
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>