.idea/deploymentTargetDropDown.xml
@@ -1,17 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="deploymentTargetDropDown"> <runningDeviceTargetSelectedWithDropDown> <Target> <type value="RUNNING_DEVICE_TARGET" /> <deviceKey> <Key> <type value="VIRTUAL_DEVICE_PATH" /> <value value="D:\software\Android\.android\avd\Pixel_API_30.avd" /> </Key> </deviceKey> </Target> </runningDeviceTargetSelectedWithDropDown> <timeTargetWasSelectedWithDropDown value="2023-04-03T09:11:44.626235900Z" /> </component> <component name="deploymentTargetDropDown"> <targetSelectedWithDropDown> <Target> <type value="QUICK_BOOT_TARGET" /> <deviceKey> <Key> <type value="VIRTUAL_DEVICE_PATH" /> <value value="D:\software\Android\.android\avd\Pixel_API_30.avd" /> </Key> </deviceKey> </Target> </targetSelectedWithDropDown> <timeTargetWasSelectedWithDropDown value="2023-04-18T13:54:47.432784600Z" /> </component> </project> app/src/main/AndroidManifest.xml
@@ -1,55 +1,36 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!-- 网络相关 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_CONTACTS"/> <!-- 外部存储 --> <!-- Android 13开始,如果你的应用targetSdk指定到了33或以上,READ_EXTERNAL_STORAGE权限就完全失去了作用,需要细化--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 外部存储 --> <!-- Android 13开始,如果你的应用targetSdk指定到了33或以上,READ_EXTERNAL_STORAGE权限就完全失去了作用,需要细化 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!--Android 13版本适配,细化存储权限,READ_EXTERNAL_STORAGE无法再使用--> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- Android 13版本适配,细化存储权限,READ_EXTERNAL_STORAGE无法再使用 --> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <!-- 震动权限 --> <uses-permission android:name="android.permission.VIBRATE" /> <!-- 蓝牙权限 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <!-- 拍照权限 --> <uses-permission android:name="android.permission.CAMERA" /> <!-- 安装权限 --> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 定位权限(用于 WebView 定位)--> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <!-- 震动权限 --> <uses-permission android:name="android.permission.VIBRATE" /> <!-- 蓝牙权限 --> <uses-permission android:name="android.permission.BLUETOOTH" /> <!-- 拍照权限 --> <uses-permission android:name="android.permission.CAMERA" /> <!-- 安装权限 --> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 定位权限(用于 WebView 定位) --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <queries package="${applicationId}"> <intent> <action android:name="android.media.action.IMAGE_CAPTURE"> </action> <action android:name="android.media.action.IMAGE_CAPTURE" /> </intent> <intent> <action android:name="android.media.action.ACTION_VIDEO_CAPTURE"> </action> <action android:name="android.media.action.ACTION_VIDEO_CAPTURE" /> </intent> </queries> @@ -76,24 +57,21 @@ android:value="true" /> <!-- 适配小米(xiaomi)刘海屏 --> <meta-data android:name="notch.config" android:value="portrait|landscape" /> <!-- 屏幕适配 (默认以宽度适配)--> android:value="portrait|landscape" /> <!-- 屏幕适配 (默认以宽度适配) --> <meta-data android:name="design_width_in_dp" android:value="360"/> android:value="360" /> <meta-data android:name="design_height_in_dp" android:value="640"/> android:value="640" /> <activity android:name=".ui.main.MainActivity" android:exported="true"> </activity> android:exported="true" /> <activity android:name=".ui.login.LoginActivity" android:exported="true" android:screenOrientation="portrait" > android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> @@ -121,6 +99,52 @@ <activity android:name=".ui.function.GrowthExperienceActivity" android:exported="false" /> <activity android:name=".ui.function.HonorCollectionDetailActivity" android:exported="false" /> <activity android:name=".ui.function.HonorCollectionActivity" android:exported="false" /> <activity android:name=".ui.function.LittleDoctorDetailActivity" android:exported="false" /> <activity android:name=".ui.function.LittleDoctorActivity" android:exported="false" /> <activity android:name=".ui.function.CleanStorageActivity" android:exported="false" /> <activity android:name=".ui.function.CleanStorageDetailActivity" android:exported="false" /> <activity android:name=".ui.function.IncomeAndExpensesActivity" android:exported="false" /> <activity android:name=".ui.function.IncomeAndExpensesDetailActivity" android:exported="false" /> <activity android:name=".ui.function.PropertyActivity" android:exported="false" /> <activity android:name=".ui.function.PropertyDetailActivity" android:exported="false" /> <activity android:name=".ui.function.HundredWishActivity" android:exported="false" /> <activity android:name=".ui.function.HundredWishDetailActivity" android:exported="false" /> <activity android:name=".ui.function.CertificateOfHonorActivity" android:exported="false" /> <activity android:name=".ui.function.CertificateOfHonorDetailActivity" android:exported="false" /> <activity android:name=".ui.function.MarriageActivity" android:exported="false" /> </application> </manifest> app/src/main/java/com/application/zhangshi_app_android/adapter/CertificateOfHonorRvAdapter.java
New file @@ -0,0 +1,132 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.recyclerview.widget.GridLayoutManager; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.CertificateOfHonorBean; import com.application.zhangshi_app_android.databinding.ItemCertificateOfHonorBinding; import com.application.zhangshi_app_android.ui.function.CertificateOfHonorDetailActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.23. 22:33 * @desc 荣誉证书 Adapter */ public class CertificateOfHonorRvAdapter extends BaseRVAdapter<CertificateOfHonorBean, ItemCertificateOfHonorBinding, CertificateOfHonorRvAdapter.ViewHolder> { public CertificateOfHonorRvAdapter(Context context) { super(context); } @Override protected int getLayoutId() { return R.layout.item_certificate_of_honor; } @Override protected ViewHolder getViewHolder(ItemCertificateOfHonorBinding itemBind, int viewType) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), CertificateOfHonorDetailActivity.class) .putExtra("bean",mDataList.get(position))); }); ImageRvAdapter adapter = new ImageRvAdapter(mContext); holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3)); holder.getBinding().rvImage.setAdapter(adapter); String url = mDataList.get(position).getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemCertificateOfHonorBinding> { private boolean isExpended; public ViewHolder(ItemCertificateOfHonorBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/CleanStorageRvAdapter.java
New file @@ -0,0 +1,135 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.recyclerview.widget.GridLayoutManager; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.CleanStorageBean; import com.application.zhangshi_app_android.databinding.ItemCleanStorageBinding; import com.application.zhangshi_app_android.databinding.ItemFamilyAssetsBinding; import com.application.zhangshi_app_android.ui.function.CleanStorageActivity; import com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivity; import com.application.zhangshi_app_android.ui.function.FamilyAssetsDetailActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.16. 19:12 * @desc */ public class CleanStorageRvAdapter extends BaseRVAdapter<CleanStorageBean, ItemCleanStorageBinding, CleanStorageRvAdapter.ViewHolder>{ public CleanStorageRvAdapter(Context context) { super(context); } @Override protected int getLayoutId() { return R.layout.item_clean_storage; } @Override protected ViewHolder getViewHolder(ItemCleanStorageBinding itemBind, int viewType) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), CleanStorageDetailActivity.class) .putExtra("bean",mDataList.get(position))); }); ImageRvAdapter adapter = new ImageRvAdapter(mContext); holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3)); holder.getBinding().rvImage.setAdapter(adapter); String url = mDataList.get(position).getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemCleanStorageBinding> { private boolean isExpended; public ViewHolder(ItemCleanStorageBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyAssetsRvAdapter.java
@@ -21,9 +21,12 @@ import com.application.zhangshi_app_android.ui.function.FamilyAssetsActivityViewModel; import com.application.zhangshi_app_android.ui.function.FamilyAssetsDetailActivity; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.Objects; /** @@ -50,7 +53,7 @@ } @Override protected ViewHolder getViewHolder(ItemFamilyAssetsBinding itemBind) { protected ViewHolder getViewHolder(ItemFamilyAssetsBinding itemBind,int viewType) { return new ViewHolder(itemBind); } @@ -117,6 +120,8 @@ new Intent(getRecyclerView().getContext(), FamilyAssetsDetailActivity.class) .putExtra("bean",mDataList.get(position))); }); String time = mDataList.get(position).getCreateTime().split(" ")[0]; holder.getBinding().tvTime.setText(time); ImageRvAdapter adapter = new ImageRvAdapter(mContext); holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3)); holder.getBinding().rvImage.setAdapter(adapter); app/src/main/java/com/application/zhangshi_app_android/adapter/FamilyMemorabiliaRvAdapter.java
@@ -23,6 +23,7 @@ import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivityViewModel; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Objects; @@ -53,7 +54,7 @@ } @Override protected MyViewHolder getViewHolder(ItemFamilyMemorabiliaBinding itemBind) { protected MyViewHolder getViewHolder(ItemFamilyMemorabiliaBinding itemBind,int viewType) { return new MyViewHolder(itemBind); } @@ -70,13 +71,18 @@ holder.getBinding().checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { List<FamilyMemorabiliaBean> list = new ArrayList<>(Objects.requireNonNull(viewModel.getCheckListLiveData().getValue())); if (viewModel.getCheckListLiveData().getValue() == null){ viewModel.getCheckListLiveData().setValue(new ArrayList<>()); } List<FamilyMemorabiliaBean> list = new ArrayList<>(viewModel.getCheckListLiveData().getValue()); if (isChecked){ list.add(mDataList.get(position)); if (!list.contains(mDataList.get(position))){ list.add(mDataList.get(position)); } }else{ list.remove(mDataList.get(position)); } viewModel.getCheckListLiveData().postValue(list); viewModel.getCheckListLiveData().setValue(list); } }); holder.getBinding().checkbox.setChecked(viewModel.getCheckListLiveData().getValue().contains(mDataList.get(position))); app/src/main/java/com/application/zhangshi_app_android/adapter/HomeDevicesRvAdapter.java
@@ -119,7 +119,7 @@ } @Override protected ViewHolder getViewHolder(ItemHomeDevicesBinding itemBind) { protected ViewHolder getViewHolder(ItemHomeDevicesBinding itemBind,int viewType) { return new ViewHolder(itemBind); } app/src/main/java/com/application/zhangshi_app_android/adapter/HomeMemberAdapter.java
New file @@ -0,0 +1,103 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import com.android.app_base.base.adapter.BaseRVAdapter; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.HomeMemberBean; import com.application.zhangshi_app_android.databinding.ItemHomeMemberListBinding; /** * @author Ljj * @date 2023.04.11. 14:08 * @desc */ public class HomeMemberAdapter extends BaseRVAdapter<HomeMemberBean, ItemHomeMemberListBinding, HomeMemberAdapter.ViewHolder> { public HomeMemberAdapter(Context context) { super(context); } @Override protected int getLayoutId() { return R.layout.item_home_member_list; } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); } @Override protected ViewHolder getViewHolder(ItemHomeMemberListBinding itemBind, int viewType) { return new ViewHolder(itemBind); } public static class ViewHolder extends BaseViewHolder<ItemHomeMemberListBinding>{ private boolean isExpended; public ViewHolder(ItemHomeMemberListBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/HonorCollectionRvAdapter.java
New file @@ -0,0 +1,138 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.recyclerview.widget.GridLayoutManager; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.HonorCollectionBean; import com.application.zhangshi_app_android.databinding.ItemFamilyAssetsBinding; import com.application.zhangshi_app_android.databinding.ItemHonorCollectionBinding; import com.application.zhangshi_app_android.ui.function.HonorCollectionDetailActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.14. 20:57 * @desc 荣誉收藏 Adapter */ public class HonorCollectionRvAdapter extends BaseRVAdapter<HonorCollectionBean, ItemHonorCollectionBinding, HonorCollectionRvAdapter.ViewHolder>{ public HonorCollectionRvAdapter(Context context) { super(context); } @Override protected int getLayoutId() { return R.layout.item_honor_collection; } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), HonorCollectionDetailActivity.class) .putExtra("bean",mDataList.get(position))); }); String time = mDataList.get(position).getGetTime().split(" ")[0]; holder.getBinding().tvTime.setText(time); ImageRvAdapter adapter = new ImageRvAdapter(mContext); holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3)); holder.getBinding().rvImage.setAdapter(adapter); String url = mDataList.get(position).getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } @Override protected ViewHolder getViewHolder(ItemHonorCollectionBinding itemBind, int viewType) { return new ViewHolder(itemBind); } public static class ViewHolder extends BaseViewHolder<ItemHonorCollectionBinding>{ private boolean isExpended; public ViewHolder(ItemHonorCollectionBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/HundredWishRvAdapter.java
New file @@ -0,0 +1,131 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.recyclerview.widget.GridLayoutManager; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.HundredWishBean; import com.application.zhangshi_app_android.databinding.ItemHundredWishBinding; import com.application.zhangshi_app_android.ui.function.HundredWishDetailActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.23. 20:05 * @desc */public class HundredWishRvAdapter extends BaseRVAdapter<HundredWishBean, ItemHundredWishBinding, HundredWishRvAdapter.ViewHolder> { public HundredWishRvAdapter(Context context) { super(context); } @Override protected int getLayoutId() { return R.layout.item_hundred_wish; } @Override protected ViewHolder getViewHolder(ItemHundredWishBinding itemBind, int viewType) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), HundredWishDetailActivity.class) .putExtra("bean",mDataList.get(position))); }); ImageRvAdapter adapter = new ImageRvAdapter(mContext); holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3)); holder.getBinding().rvImage.setAdapter(adapter); String url = mDataList.get(position).getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemHundredWishBinding> { private boolean isExpended; public ViewHolder(ItemHundredWishBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/ImageRvAdapter.java
@@ -54,7 +54,7 @@ } @Override protected BaseViewHolder<ItemImageBinding> getViewHolder(ItemImageBinding itemBind) { protected BaseViewHolder<ItemImageBinding> getViewHolder(ItemImageBinding itemBind,int viewType) { return new BaseViewHolder<>(itemBind); } app/src/main/java/com/application/zhangshi_app_android/adapter/IncomeAndExpensesRvAdapter.java
New file @@ -0,0 +1,135 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.recyclerview.widget.GridLayoutManager; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.CleanStorageBean; import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean; import com.application.zhangshi_app_android.databinding.ItemCleanStorageBinding; import com.application.zhangshi_app_android.databinding.ItemIncomeAndExpensesBinding; import com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivity; import com.application.zhangshi_app_android.ui.function.IncomeAndExpensesDetailActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.20. 22:24 * @desc */ public class IncomeAndExpensesRvAdapter extends BaseRVAdapter<IncomeAndExpensesBean, ItemIncomeAndExpensesBinding, IncomeAndExpensesRvAdapter.ViewHolder> { public IncomeAndExpensesRvAdapter(Context context) { super(context); } @Override protected int getLayoutId() { return R.layout.item_income_and_expenses; } @Override protected ViewHolder getViewHolder(ItemIncomeAndExpensesBinding itemBind, int viewType) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), IncomeAndExpensesDetailActivity.class) .putExtra("bean",mDataList.get(position))); }); ImageRvAdapter adapter = new ImageRvAdapter(mContext); holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3)); holder.getBinding().rvImage.setAdapter(adapter); String url = mDataList.get(position).getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemIncomeAndExpensesBinding> { private boolean isExpended; public ViewHolder(ItemIncomeAndExpensesBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/LittleDoctorRvAdapter.java
New file @@ -0,0 +1,135 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.recyclerview.widget.GridLayoutManager; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.LittleDoctorBean; import com.application.zhangshi_app_android.databinding.ItemHonorCollectionBinding; import com.application.zhangshi_app_android.databinding.ItemLittleDoctorBinding; import com.application.zhangshi_app_android.ui.function.HonorCollectionDetailActivity; import com.application.zhangshi_app_android.ui.function.LittleDoctorDetailActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.15. 15:06 * @desc */ public class LittleDoctorRvAdapter extends BaseRVAdapter<LittleDoctorBean, ItemLittleDoctorBinding, LittleDoctorRvAdapter.ViewHolder> { public LittleDoctorRvAdapter(Context context) { super(context); } @Override protected int getLayoutId() { return R.layout.item_little_doctor; } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), LittleDoctorDetailActivity.class) .putExtra("bean",mDataList.get(position))); }); ImageRvAdapter adapter = new ImageRvAdapter(mContext); holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3)); holder.getBinding().rvImage.setAdapter(adapter); String url = mDataList.get(position).getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } @Override protected ViewHolder getViewHolder(ItemLittleDoctorBinding itemBind, int viewType) { return new ViewHolder(itemBind); } public static class ViewHolder extends BaseViewHolder<ItemLittleDoctorBinding>{ private boolean isExpended; public ViewHolder(ItemLittleDoctorBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/PetRvAdapter.java
New file @@ -0,0 +1,118 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.recyclerview.widget.GridLayoutManager; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.CleanStorageBean; import com.application.zhangshi_app_android.bean.PetBean; import com.application.zhangshi_app_android.databinding.ItemCleanStorageBinding; import com.application.zhangshi_app_android.databinding.ItemPetBinding; import com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.17. 18:40 * @desc */ public class PetRvAdapter extends BaseRVAdapter<PetBean, ItemPetBinding, PetRvAdapter.ViewHolder> { public PetRvAdapter(Context context) { super(context); } @Override protected int getLayoutId() { return R.layout.item_pet; } @Override protected ViewHolder getViewHolder(ItemPetBinding itemBind, int viewType) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), CleanStorageDetailActivity.class) .putExtra("bean",mDataList.get(position))); }); } public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemPetBinding> { private boolean isExpended; public ViewHolder(ItemPetBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/PropertyRvAdapter.java
New file @@ -0,0 +1,134 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.recyclerview.widget.GridLayoutManager; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.PropertyBean; import com.application.zhangshi_app_android.databinding.ItemCleanStorageBinding; import com.application.zhangshi_app_android.databinding.ItemPropertyBinding; import com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivity; import com.application.zhangshi_app_android.ui.function.PropertyDetailActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.21. 19:26 * @desc 个人财产 Adapter */ public class PropertyRvAdapter extends BaseRVAdapter<PropertyBean, ItemPropertyBinding, PropertyRvAdapter.ViewHolder> { public PropertyRvAdapter(Context context) { super(context); } @Override protected int getLayoutId() { return R.layout.item_property; } @Override protected ViewHolder getViewHolder(ItemPropertyBinding itemBind, int viewType) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), PropertyDetailActivity.class) .putExtra("bean",mDataList.get(position))); }); ImageRvAdapter adapter = new ImageRvAdapter(mContext); holder.getBinding().rvImage.setLayoutManager(new GridLayoutManager(mContext,3)); holder.getBinding().rvImage.setAdapter(adapter); String url = mDataList.get(position).getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } public static class ViewHolder extends BaseRVAdapter.BaseViewHolder<ItemPropertyBinding> { private boolean isExpended; public ViewHolder(ItemPropertyBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/bean/CertificateOfHonorBean.java
New file @@ -0,0 +1,111 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; /** * @author Ljj * @date 2023.04.23. 22:32 * @desc 荣誉证书 Bean */ public class CertificateOfHonorBean implements Serializable { //名称 private String name; //时间 private String time; //类别 private String type; //证号 private String certificateNumber; //级别 private String level; //有效时间 private String effectiveTime; //获得时间 private String getTime; //存放位置 private String location; //备注 private String remark; //电子文件 private String url; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTime() { return time; } public void setTime(String time) { this.time = time; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getCertificateNumber() { return certificateNumber; } public void setCertificateNumber(String certificateNumber) { this.certificateNumber = certificateNumber; } public String getLevel() { return level; } public void setLevel(String level) { this.level = level; } public String getEffectiveTime() { return effectiveTime; } public void setEffectiveTime(String effectiveTime) { this.effectiveTime = effectiveTime; } public String getGetTime() { return getTime; } public void setGetTime(String getTime) { this.getTime = getTime; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } app/src/main/java/com/application/zhangshi_app_android/bean/CleanStorageBean.java
New file @@ -0,0 +1,112 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; /** * @author Ljj * @date 2023.04.16. 19:13 * @desc 保洁收纳 bean */ public class CleanStorageBean implements Serializable { //序号 private int id; //类型 private String type; //适用人 private String suitablePeople; //类别 private String category; //保洁方法 private String cleanMethod; //材料存放地 private String materialStorageLocation; //放置地点 private String placementLocation; //备注 private String remark; private String url; public CleanStorageBean(int id, String type, String suitablePeople, String category, String cleanMethod, String materialStorageLocation, String placementLocation, String remark, String url) { this.id = id; this.type = type; this.suitablePeople = suitablePeople; this.category = category; this.cleanMethod = cleanMethod; this.materialStorageLocation = materialStorageLocation; this.placementLocation = placementLocation; this.remark = remark; this.url = url; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getSuitablePeople() { return suitablePeople; } public void setSuitablePeople(String suitablePeople) { this.suitablePeople = suitablePeople; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public String getCleanMethod() { return cleanMethod; } public void setCleanMethod(String cleanMethod) { this.cleanMethod = cleanMethod; } public String getMaterialStorageLocation() { return materialStorageLocation; } public void setMaterialStorageLocation(String materialStorageLocation) { this.materialStorageLocation = materialStorageLocation; } public String getPlacementLocation() { return placementLocation; } public void setPlacementLocation(String placementLocation) { this.placementLocation = placementLocation; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } app/src/main/java/com/application/zhangshi_app_android/bean/HomeDevicesBean.java
@@ -10,20 +10,21 @@ public class HomeDevicesBean implements Serializable { private long id; private String name; private String createTime; private String people; private String createDate; private String buyer; private String content; private String address; private String location; private String remark; private String url; private String familyId; public HomeDevicesBean(long id, String name, String createTime, String people, String content, String address, String remark, String url) { this.id = id; this.name = name; this.createTime = createTime; this.people = people; this.createDate = createTime; this.buyer = people; this.content = content; this.address = address; this.location = address; this.remark = remark; this.url = url; } @@ -36,20 +37,20 @@ this.name = name; } public String getCreateTime() { return createTime; public String getCreateDate() { return createDate; } public void setCreateTime(String createTime) { this.createTime = createTime; public void setCreateDate(String createDate) { this.createDate = createDate; } public String getPeople() { return people; public String getBuyer() { return buyer; } public void setPeople(String people) { this.people = people; public void setBuyer(String buyer) { this.buyer = buyer; } public String getContent() { @@ -60,12 +61,12 @@ this.content = content; } public String getAddress() { return address; public String getLocation() { return location; } public void setAddress(String address) { this.address = address; public void setLocation(String location) { this.location = location; } public String getRemark() { @@ -90,4 +91,12 @@ public void setId(long id) { this.id = id; } public String getFamilyId() { return familyId; } public void setFamilyId(String familyId) { this.familyId = familyId; } } app/src/main/java/com/application/zhangshi_app_android/bean/HomeMemberBean.java
New file @@ -0,0 +1,102 @@ package com.application.zhangshi_app_android.bean; /** * @author Ljj * @date 2023.04.11. 14:13 * @desc 首页成员信息 */ public class HomeMemberBean { private String generation; private String name; private String gender; private String url; private String birthday; private String deathDay; private String phone; private String company; private String spouse; public HomeMemberBean(String generation, String name, String gender, String url, String birthday, String deathDay, String phone, String company, String spouse) { this.generation = generation; this.name = name; this.gender = gender; this.url = url; this.birthday = birthday; this.deathDay = deathDay; this.phone = phone; this.company = company; this.spouse = spouse; } public String getGeneration() { return generation; } public void setGeneration(String generation) { this.generation = generation; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getDeathDay() { return deathDay; } public void setDeathDay(String deathDay) { this.deathDay = deathDay; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getCompany() { return company; } public void setCompany(String company) { this.company = company; } public String getSpouse() { return spouse; } public void setSpouse(String spouse) { this.spouse = spouse; } } app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionBean.java
New file @@ -0,0 +1,119 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; /** * @author Ljj * @date 2023.04.14. 21:12 * @desc */ public class HonorCollectionBean implements Serializable { private int id; private String type;//类型 private String name;//名称 private String getTime;//获得时间 private String source;//来源 private String price;//价值 private String owner;//所有者 private String location;//存放地点 private String remark;//备注 private String url;//电子文件 private String familyId;//家庭id private int ownData;//拥有数据 public String getName() { return name; } public String getType() { return type; } public void setType(String type) { this.type = type; } public void setName(String name) { this.name = name; } public String getGetTime() { return getTime; } public void setGetTime(String getTime) { this.getTime = getTime; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getOwner() { return owner; } public void setOwner(String owner) { this.owner = owner; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFamilyId() { return familyId; } public void setFamilyId(String familyId) { this.familyId = familyId; } public int getOwnData() { return ownData; } public void setOwnData(int ownData) { this.ownData = ownData; } } app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionRequestBean.java
New file @@ -0,0 +1,118 @@ package com.application.zhangshi_app_android.bean; import java.util.HashMap; import java.util.Map; /** * @author Ljj * @date 2023.04.17. 21:26 * @desc 荣誉收藏 请求Bean */ public class HonorCollectionRequestBean { private String type;//类型 private String name;//名称 private String getTime;//获得时间 private String source;//来源 private String price;//价值 private String owner;//所有者 private String location;//存放地点 private String remark;//备注 private int pageNum = 1;//页码 private int pageSize = 20;//每页条数 public String getType() { return type; } public void setType(String type) { this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGetTime() { return getTime; } public void setGetTime(String getTime) { this.getTime = getTime; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getOwner() { return owner; } public void setOwner(String owner) { this.owner = owner; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public int getPageNum() { return pageNum; } public void setPageNum(int pageNum) { this.pageNum = pageNum; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } //map public Map<String, Object> toMap() { Map<String, Object> map = new HashMap<>(); map.put("type", type == null ? "" : type); map.put("name", name == null ? "" : name); map.put("getTime", getTime == null ? "" : getTime); map.put("source", source == null ? "" : source); map.put("price", price == null ? "" : price); map.put("owner", owner == null ? "" : owner); map.put("location", location == null ? "" : location); map.put("remark", remark == null ? "" : remark); map.put("pageNum", pageNum); map.put("pageSize", pageSize); return map; } } app/src/main/java/com/application/zhangshi_app_android/bean/HonorCollectionResponseBean.java
New file @@ -0,0 +1,47 @@ package com.application.zhangshi_app_android.bean; import java.util.List; /** * @author Ljj * @date 2023.04.17. 21:38 * @desc 荣誉收藏 返回Bean */ public class HonorCollectionResponseBean { private List<HonorCollectionBean> data; private long pageNum; private long pageSize; private long total; public List<HonorCollectionBean> getData() { return data; } public void setData(List<HonorCollectionBean> data) { this.data = data; } public long getPageNum() { return pageNum; } public void setPageNum(long pageNum) { this.pageNum = pageNum; } public long getPageSize() { return pageSize; } public void setPageSize(long pageSize) { this.pageSize = pageSize; } public long getTotal() { return total; } public void setTotal(long total) { this.total = total; } } app/src/main/java/com/application/zhangshi_app_android/bean/HundredWishBean.java
New file @@ -0,0 +1,101 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; /** * @author Ljj * @date 2023.04.23. 20:04 * @desc */ public class HundredWishBean implements Serializable { //标题 private String title; //创建时间 private String createTime; //始于何因 private String reason; //受惠人 private String beneficiary; //继承人 private String heir; //实现难度 private String difficulty; //是否依旧有效 1有效 0无效 private int isEffective; //备注 private String remark; //电子文件 private String url; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } public String getReason() { return reason; } public void setReason(String reason) { this.reason = reason; } public String getBeneficiary() { return beneficiary; } public void setBeneficiary(String beneficiary) { this.beneficiary = beneficiary; } public String getHeir() { return heir; } public void setHeir(String heir) { this.heir = heir; } public String getDifficulty() { return difficulty; } public void setDifficulty(String difficulty) { this.difficulty = difficulty; } public int getIsEffective() { return isEffective; } public void setIsEffective(int isEffective) { this.isEffective = isEffective; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesBean.java
New file @@ -0,0 +1,119 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; /** * @author Ljj * @date 2023.04.20. 22:25 * @desc 收支台账 实体类 */ public class IncomeAndExpensesBean implements Serializable { private int id; private int type;//0=基金,1=台账 private String createTime; private String price;//金额 private String useFor;//用途 private String usePeople;//使用人 private int kind;//0=现金,1=自动划扣 private String balance;//余额 private String remark;//备注 private String url;//电子文件 private String familyId;//家庭id private int ownData;//是否是本家庭的数据 0=否,1=是 public int getId() { return id; } public void setId(int id) { this.id = id; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getUseFor() { return useFor; } public void setUseFor(String useFor) { this.useFor = useFor; } public String getUsePeople() { return usePeople; } public void setUsePeople(String usePeople) { this.usePeople = usePeople; } public int getKind() { return kind; } public void setKind(int kind) { this.kind = kind; } public String getBalance() { return balance; } public void setBalance(String balance) { this.balance = balance; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getFamilyId() { return familyId; } public void setFamilyId(String familyId) { this.familyId = familyId; } public int getOwnData() { return ownData; } public void setOwnData(int ownData) { this.ownData = ownData; } } app/src/main/java/com/application/zhangshi_app_android/bean/IncomeAndExpensesResponseBean.java
New file @@ -0,0 +1,47 @@ package com.application.zhangshi_app_android.bean; import java.util.List; /** * @author Ljj * @date 2023.04.20. 22:50 * @desc */ public class IncomeAndExpensesResponseBean { private List<IncomeAndExpensesBean> data; private long pageNum; private long pageSize; private long total; public List<IncomeAndExpensesBean> getData() { return data; } public void setData(List<IncomeAndExpensesBean> data) { this.data = data; } public long getPageNum() { return pageNum; } public void setPageNum(long pageNum) { this.pageNum = pageNum; } public long getPageSize() { return pageSize; } public void setPageSize(long pageSize) { this.pageSize = pageSize; } public long getTotal() { return total; } public void setTotal(long total) { this.total = total; } } app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorBean.java
New file @@ -0,0 +1,114 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; /** * @author Ljj * @date 2023.04.15. 15:25 * @desc */ public class LittleDoctorBean implements Serializable { private int id; private String type;//类型 private String symptom;//症状 private String duration;//持续时间 private String cmedical;//中医处方 private String wmedical; private String effect; private String suitable; private String remark; private String url; public LittleDoctorBean(int id, String symptoms, String usingPeople, String duration, String type, String tcmPrescription, String westernMedicinePrescription, String efficacy, String remark, String url) { this.id = id; this.symptom = symptoms; this.suitable = usingPeople; this.duration = duration; this.type = type; this.cmedical = tcmPrescription; this.wmedical = westernMedicinePrescription; this.effect = efficacy; this.remark = remark; this.url = url; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getSymptom() { return symptom; } public void setSymptom(String symptom) { this.symptom = symptom; } public String getSuitable() { return suitable; } public void setSuitable(String suitable) { this.suitable = suitable; } public String getDuration() { return duration; } public void setDuration(String duration) { this.duration = duration; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getCmedical() { return cmedical; } public void setCmedical(String cmedical) { this.cmedical = cmedical; } public String getWmedical() { return wmedical; } public void setWmedical(String wmedical) { this.wmedical = wmedical; } public String getEffect() { return effect; } public void setEffect(String effect) { this.effect = effect; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorRequestBean.java
New file @@ -0,0 +1,24 @@ package com.application.zhangshi_app_android.bean; import java.util.HashMap; import java.util.Map; /** * @author Ljj * @date 2023.04.15. 21:30 * @desc */ public class LittleDoctorRequestBean { private int pageNum = 1; private int pageSize = 20; public LittleDoctorRequestBean() { } public Map<String, Object> toMap() { Map<String, Object> map = new HashMap<>(); map.put("page", pageNum); map.put("pageSize", pageSize); return map; } } app/src/main/java/com/application/zhangshi_app_android/bean/LittleDoctorResponseBean.java
New file @@ -0,0 +1,47 @@ package com.application.zhangshi_app_android.bean; import java.util.List; /** * @author Ljj * @date 2023.04.17. 22:17 * @desc 小医生返回数据 */ public class LittleDoctorResponseBean { private List<LittleDoctorBean> data; private long pageNum; private long pageSize; private long total; public List<LittleDoctorBean> getData() { return data; } public void setData(List<LittleDoctorBean> data) { this.data = data; } public long getPageNum() { return pageNum; } public void setPageNum(long pageNum) { this.pageNum = pageNum; } public long getPageSize() { return pageSize; } public void setPageSize(long pageSize) { this.pageSize = pageSize; } public long getTotal() { return total; } public void setTotal(long total) { this.total = total; } } app/src/main/java/com/application/zhangshi_app_android/bean/PetBean.java
New file @@ -0,0 +1,155 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; /** * @author Ljj * @date 2023.04.17. 18:52 * @desc */ public class PetBean implements Serializable { private int id; private String idNum; private String securityCode; private String type; private String name; private String birth; private int sex; private String color; private String properties; private String eatHabit; private String lifeHabit; private String disEatHabit; private String disLifeHabit; private String address; private String dialect; private String url; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getIdNum() { return idNum; } public void setIdNum(String idNum) { this.idNum = idNum; } public String getSecurityCode() { return securityCode; } public void setSecurityCode(String securityCode) { this.securityCode = securityCode; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getBirth() { return birth; } public void setBirth(String birth) { this.birth = birth; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getProperties() { return properties; } public void setProperties(String properties) { this.properties = properties; } public String getEatHabit() { return eatHabit; } public void setEatHabit(String eatHabit) { this.eatHabit = eatHabit; } public String getLifeHabit() { return lifeHabit; } public void setLifeHabit(String lifeHabit) { this.lifeHabit = lifeHabit; } public String getDisEatHabit() { return disEatHabit; } public void setDisEatHabit(String disEatHabit) { this.disEatHabit = disEatHabit; } public String getDisLifeHabit() { return disLifeHabit; } public void setDisLifeHabit(String disLifeHabit) { this.disLifeHabit = disLifeHabit; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getDialect() { return dialect; } public void setDialect(String dialect) { this.dialect = dialect; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } app/src/main/java/com/application/zhangshi_app_android/bean/PropertyBean.java
New file @@ -0,0 +1,117 @@ package com.application.zhangshi_app_android.bean; import java.io.Serializable; /** * @author Ljj * @date 2023.04.21. 19:11 * @desc 个人财产 Bean */ public class PropertyBean implements Serializable { private String type; private String name; private String price;//价值 private String createTime;//时间 private String term;//期限 private String status;//变更或注销 private String propertyRight;//产权 private String location;//位置 private String remark;//备注 private String url;//电子文件 public PropertyBean() { } public PropertyBean(String type, String name, String price, String createTime, String term, String status, String propertyRight, String location, String remark, String url) { this.type = type; this.name = name; this.price = price; this.createTime = createTime; this.term = term; this.status = status; this.propertyRight = propertyRight; this.location = location; this.remark = remark; this.url = url; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getCreateTime() { return createTime; } public void setCreateTime(String createTime) { this.createTime = createTime; } public String getTerm() { return term; } public void setTerm(String term) { this.term = term; } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getPropertyRight() { return propertyRight; } public void setPropertyRight(String propertyRight) { this.propertyRight = propertyRight; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java
@@ -10,6 +10,9 @@ import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean; import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean; import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; import com.application.zhangshi_app_android.bean.UploadFileResponseBean; @@ -138,6 +141,28 @@ } /** * 获取家庭荣誉 */ public Observable<ResultData<HonorCollectionResponseBean>> getHonorCollections(Map<String, Object> map) { return mHttpDataSource.getHonorCollections(map); } /** * 获取小医生 */ public Observable<ResultData<LittleDoctorResponseBean>> getLittleDoctors(Map<String, Object> map) { return mHttpDataSource.getLittleDoctors(map); } /** * 获取收支台账 */ public Observable<ResultData<IncomeAndExpensesResponseBean>> getIncomeAndExpenses(Map<String, Object> map) { return mHttpDataSource.getIncomeAndExpenses(map); } /** * @see LocalDataSourceImpl */ } app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java
@@ -7,6 +7,9 @@ import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean; import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean; import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; import com.application.zhangshi_app_android.bean.UploadFileResponseBean; @@ -71,4 +74,19 @@ * 获取家庭设备 */ Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(Map<String, Object> paramsMap); /** * 获取家庭荣誉 */ Observable<ResultData<HonorCollectionResponseBean>> getHonorCollections(Map<String, Object> map); /** * 获取小医生 */ Observable<ResultData<LittleDoctorResponseBean>> getLittleDoctors(Map<String, Object> map); /** * 获取收支 */ Observable<ResultData<IncomeAndExpensesResponseBean>> getIncomeAndExpenses(Map<String, Object> map); } app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java
@@ -7,6 +7,9 @@ import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean; import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean; import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; import com.application.zhangshi_app_android.bean.UploadFileResponseBean; @@ -89,6 +92,24 @@ /** * 获取家庭设备 */ @GET("")//TODO 获取家庭设备 @GET("/zfEquipment/all") Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(@QueryMap Map<String, Object> paramsMap); /** * 获取家庭荣誉 */ @GET("/zfCollection/all") Observable<ResultData<HonorCollectionResponseBean>> getHonorCollections(@QueryMap Map<String, Object> paramsMap); /** * 获取小医生 */ @GET("/zfDoctor/all") Observable<ResultData<LittleDoctorResponseBean>> getLittleDoctors(@QueryMap Map<String, Object> map); /** * 获取收支 */ @GET("/zfEconomy/all") Observable<ResultData<IncomeAndExpensesResponseBean>> getIncomeAndExpenses(@QueryMap Map<String, Object> map); } app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java
@@ -8,6 +8,9 @@ import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean; import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean; import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; import com.android.app_base.base.BaseConfig; @@ -125,4 +128,28 @@ public Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(Map<String, Object> paramsMap) { return apiService.getHomeDevices(paramsMap); } /** * 获取家庭荣誉 */ @Override public Observable<ResultData<HonorCollectionResponseBean>> getHonorCollections(Map<String, Object> map) { return apiService.getHonorCollections(map); } /** * 获取小医生 */ @Override public Observable<ResultData<LittleDoctorResponseBean>> getLittleDoctors(Map<String, Object> map) { return apiService.getLittleDoctors(map); } /** * 获取收支 */ @Override public Observable<ResultData<IncomeAndExpensesResponseBean>> getIncomeAndExpenses(Map<String, Object> map) { return apiService.getIncomeAndExpenses(map); } } app/src/main/java/com/application/zhangshi_app_android/ui/DLBaseActivity.java
@@ -1,6 +1,7 @@ package com.application.zhangshi_app_android.ui; import android.graphics.Color; import android.os.Bundle; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; @@ -15,10 +16,18 @@ import com.android.app_base.base.viewmodel.BaseViewModel; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.ui.function.CleanStorageActivity; import com.application.zhangshi_app_android.ui.function.FamilyAssetsActivity; import com.application.zhangshi_app_android.ui.function.FamilyMemorabiliaActivity; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity; import com.application.zhangshi_app_android.ui.function.HomeDevicesActivity; import com.application.zhangshi_app_android.ui.function.HonorCollectionActivity; import com.application.zhangshi_app_android.ui.function.HundredWishActivity; import com.application.zhangshi_app_android.ui.function.IncomeAndExpensesActivity; import com.application.zhangshi_app_android.ui.function.LittleDoctorActivity; import com.application.zhangshi_app_android.ui.function.MarriageActivity; import com.application.zhangshi_app_android.ui.function.PetActivity; import com.application.zhangshi_app_android.ui.function.PropertyActivity; import com.hjq.bar.TitleBar; import java.util.HashMap; @@ -68,24 +77,24 @@ }; @Override protected void onResume() { super.onResume(); protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (mDrawerLayout != null) { classMap.put(null,(LinearLayout) findViewById(R.id.dl_home_root_net)); classMap.put(FamilyMemorabiliaActivity.class,(LinearLayout) findViewById(R.id.dl_family_memorabilia)); classMap.put(FamilyAssetsActivity.class,(LinearLayout) findViewById(R.id.dl_family_assets)); classMap.put(HomeDevicesActivity.class,(LinearLayout) findViewById(R.id.dl_home_devices)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_honor_collection)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_little_doctor)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_clean_storage)); classMap.put(HonorCollectionActivity.class,(LinearLayout) findViewById(R.id.dl_honor_collection)); classMap.put(LittleDoctorActivity.class,(LinearLayout) findViewById(R.id.dl_little_doctor)); classMap.put(CleanStorageActivity.class,(LinearLayout) findViewById(R.id.dl_clean_storage)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_contacts)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_pet)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_income_and_expenses)); classMap.put(PetActivity.class,(LinearLayout) findViewById(R.id.dl_pet)); classMap.put(IncomeAndExpensesActivity.class,(LinearLayout) findViewById(R.id.dl_income_and_expenses)); classMap.put(GrowthExperienceActivity.class,(LinearLayout) findViewById(R.id.dl_growing_up)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_marriage)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_property)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_hundred_wish)); classMap.put(MarriageActivity.class,(LinearLayout) findViewById(R.id.dl_marriage)); classMap.put(PropertyActivity.class,(LinearLayout) findViewById(R.id.dl_property)); classMap.put(HundredWishActivity.class,(LinearLayout) findViewById(R.id.dl_hundred_wish)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_health_care)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_certificate_of_honor)); classMap.put(null,(LinearLayout) findViewById(R.id.dl_privacy)); app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivity.java
New file @@ -0,0 +1,58 @@ package com.application.zhangshi_app_android.ui.function; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.CertificateOfHonorRvAdapter; import com.application.zhangshi_app_android.adapter.HundredWishRvAdapter; import com.application.zhangshi_app_android.databinding.ActivityCertificateOfHonorBinding; import com.application.zhangshi_app_android.databinding.ActivityHundredWishBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; /** * @author Ljj * @date 2023.04.23. 22:29 * @desc 荣誉证书 Activity */ public class CertificateOfHonorActivity extends DLBaseActivity<ActivityCertificateOfHonorBinding, CertificateOfHonorActivityViewModel> { private CertificateOfHonorRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_certificate_of_honor; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new CertificateOfHonorRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); } @Override public void initData() { viewModel.getHundredWish(); } @Override public void initLiveDataObserve() { viewModel.getDataListLiveData().observe(this, dataList -> { adapter.setData(dataList); }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorActivityViewModel.java
New file @@ -0,0 +1,61 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.CertificateOfHonorBean; import com.application.zhangshi_app_android.bean.HundredWishBean; import com.application.zhangshi_app_android.data.DataRepository; import java.util.ArrayList; import java.util.List; /** * @author Ljj * @date 2023.04.23. 22:31 * @desc */ public class CertificateOfHonorActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<CertificateOfHonorBean>> dataListLiveData; public CertificateOfHonorActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<List<CertificateOfHonorBean>> getDataListLiveData() { if (dataListLiveData == null) { dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<CertificateOfHonorBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public void getHundredWish() { List<CertificateOfHonorBean> beans = new ArrayList<>(); for (int i = 0; i < 10; i++) { CertificateOfHonorBean bean = new CertificateOfHonorBean(); bean.setName("荣誉证书" + i); bean.setTime("2023-01-01"); bean.setType("类别" + i); bean.setCertificateNumber("证号" + i); bean.setLevel("级别" + i); bean.setEffectiveTime("2030-01-01"); bean.setGetTime("2020-01-01"); bean.setLocation("存放位置" + i); bean.setRemark("备注"); beans.add(bean); } dataListLiveData.setValue(beans); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorDetailActivity.java
New file @@ -0,0 +1,102 @@ package com.application.zhangshi_app_android.ui.function; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import androidx.recyclerview.widget.GridLayoutManager; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.ImageRvAdapter; import com.application.zhangshi_app_android.bean.CertificateOfHonorBean; import com.application.zhangshi_app_android.bean.HundredWishBean; import com.application.zhangshi_app_android.databinding.ActivityCertificateOfHonorDetailBinding; import com.application.zhangshi_app_android.databinding.ActivityHundredWishDetailBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.23. 22:49 * @desc */ public class CertificateOfHonorDetailActivity extends DLBaseActivity<ActivityCertificateOfHonorDetailBinding,CertificateOfHonorDetailActivityViewModel> { private ImageRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_certificate_of_honor_detail; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { if (getIntent().hasExtra("bean")){ viewModel.getBeanLiveData().setValue((CertificateOfHonorBean) getIntent().getSerializableExtra("bean")); } } @Override public void initView() { adapter = new ImageRvAdapter(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); binding.rvImage.setLayoutManager(gridLayoutManager); binding.rvImage.setNestedScrollingEnabled(false); setIsEdited(false); } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getBeanLiveData().observe(this,bean -> { if (bean!=null){ String url = bean.getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } }); } public void setIsEdited(boolean isEdited){ disableAllEditText(getContentView(),isEdited); adapter.setIsEdited(isEdited); } public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) { for (int i = 0; i < viewGroup.getChildCount(); i++) { View child = viewGroup.getChildAt(i); if (child instanceof ViewGroup) { disableAllEditText((ViewGroup) child,isEdited); } else if (child instanceof EditText) { child.setEnabled(isEdited); child.setFocusable(isEdited); child.setFocusableInTouchMode(isEdited); if (!isEdited){ child.clearFocus(); } } } } } app/src/main/java/com/application/zhangshi_app_android/ui/function/CertificateOfHonorDetailActivityViewModel.java
New file @@ -0,0 +1,41 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.CertificateOfHonorBean; import com.application.zhangshi_app_android.data.DataRepository; /** * @author Ljj * @date 2023.04.23. 22:47 * @desc 荣誉证书详情 */ public class CertificateOfHonorDetailActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<CertificateOfHonorBean> beanLiveData; public CertificateOfHonorDetailActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<CertificateOfHonorBean> getBeanLiveData() { if (beanLiveData == null) { beanLiveData = new MutableLiveData<>(); } return beanLiveData; } public void setBeanLiveData(MutableLiveData<CertificateOfHonorBean> beanLiveData) { this.beanLiveData = beanLiveData; } } app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivity.java
New file @@ -0,0 +1,57 @@ package com.application.zhangshi_app_android.ui.function; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.CleanStorageRvAdapter; import com.application.zhangshi_app_android.adapter.LittleDoctorRvAdapter; import com.application.zhangshi_app_android.databinding.ActivityCleanStorageBinding; import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; public class CleanStorageActivity extends DLBaseActivity<ActivityCleanStorageBinding, CleanStorageActivityViewModel> { private CleanStorageRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_clean_storage; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new CleanStorageRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); } @Override public void initData() { viewModel.getCleanStorages(); } @Override public void initLiveDataObserve() { viewModel.getDataListLiveData().observe(this, dataList -> { adapter.setData(dataList); }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageActivityViewModel.java
New file @@ -0,0 +1,52 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.CleanStorageBean; import com.application.zhangshi_app_android.data.DataRepository; import java.util.ArrayList; import java.util.List; /** * @author Ljj * @date 2023.04.16. 18:56 * @desc */ public class CleanStorageActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<CleanStorageBean>> dataListLiveData; public CleanStorageActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<List<CleanStorageBean>> getDataListLiveData() { if (dataListLiveData == null) { dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<CleanStorageBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public void getCleanStorages() { List<CleanStorageBean> cleanStorageBeans = new ArrayList<>(); cleanStorageBeans.add(new CleanStorageBean(1,"保洁","全体","玻璃窗","玻璃水洗","杂物房","窗户","擦干",null)); cleanStorageBeans.add(new CleanStorageBean(1,"保洁","全体","玻璃窗","玻璃水洗","杂物房","窗户","擦干",null)); cleanStorageBeans.add(new CleanStorageBean(1,"保洁","全体","玻璃窗","玻璃水洗","杂物房","窗户","擦干",null)); cleanStorageBeans.add(new CleanStorageBean(1,"保洁","全体","玻璃窗","玻璃水洗","杂物房","窗户","擦干",null)); dataListLiveData.setValue(cleanStorageBeans); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivity.java
New file @@ -0,0 +1,99 @@ package com.application.zhangshi_app_android.ui.function; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.GridLayoutManager; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.ImageRvAdapter; import com.application.zhangshi_app_android.bean.CleanStorageBean; import com.application.zhangshi_app_android.bean.LittleDoctorBean; import com.application.zhangshi_app_android.databinding.ActivityCleanStorageDetailBinding; import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorDetailBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class CleanStorageDetailActivity extends DLBaseActivity<ActivityCleanStorageDetailBinding,CleanStorageDetailActivityViewModel> { private ImageRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_clean_storage_detail; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { if (getIntent().hasExtra("bean")){ viewModel.getBeanLiveData().setValue((CleanStorageBean) getIntent().getSerializableExtra("bean")); } } @Override public void initView() { adapter = new ImageRvAdapter(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); binding.rvImage.setLayoutManager(gridLayoutManager); binding.rvImage.setNestedScrollingEnabled(false); setIsEdited(false); } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getBeanLiveData().observe(this,bean -> { if (bean!=null){ String url = bean.getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } }); } public void setIsEdited(boolean isEdited){ disableAllEditText(getContentView(),isEdited); adapter.setIsEdited(isEdited); } public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) { for (int i = 0; i < viewGroup.getChildCount(); i++) { View child = viewGroup.getChildAt(i); if (child instanceof ViewGroup) { disableAllEditText((ViewGroup) child,isEdited); } else if (child instanceof EditText) { child.setEnabled(isEdited); child.setFocusable(isEdited); child.setFocusableInTouchMode(isEdited); if (!isEdited){ child.clearFocus(); } } } } } app/src/main/java/com/application/zhangshi_app_android/ui/function/CleanStorageDetailActivityViewModel.java
New file @@ -0,0 +1,41 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.CleanStorageBean; import com.application.zhangshi_app_android.data.DataRepository; /** * @author Ljj * @date 2023.04.16. 21:53 * @desc */ public class CleanStorageDetailActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<CleanStorageBean> beanLiveData; public CleanStorageDetailActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<CleanStorageBean> getBeanLiveData() { if (beanLiveData == null) { beanLiveData = new MutableLiveData<>(); } return beanLiveData; } public void setBeanLiveData(MutableLiveData<CleanStorageBean> beanLiveData) { this.beanLiveData = beanLiveData; } } app/src/main/java/com/application/zhangshi_app_android/ui/function/CreateFamilyProjectActivity.java
@@ -62,12 +62,13 @@ @Override public void initView() { adapter = new ImageRvAdapter(this); adapter = new ImageRvAdapter(this,viewModel); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); binding.rvImage.setLayoutManager(gridLayoutManager); binding.rvImage.setNestedScrollingEnabled(false); View footerView = View.inflate(this,R.layout.item_image_footer,null); binding.rvImage.addFooterView(footerView); binding.rvImage.requestLayout(); footerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -108,7 +109,7 @@ // 设置pop透明效果 popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000)); // 设置pop出入动画 popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_add); popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_operate); // 设置pop获取焦点,如果为false点击返回按钮会退出当前Activity,如果pop中有Editor的话,focusable必须要为true popupWindow.setFocusable(true); // 设置pop可点击,为false点击事件无效,默认为true app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyAssetsActivity.java
@@ -6,18 +6,13 @@ import android.widget.PopupWindow; import androidx.databinding.library.baseAdapters.BR; import androidx.lifecycle.Observer; import com.android.app_base.utils.ScreenSizeUtils; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.FamilyAssetsRvAdapter; import com.application.zhangshi_app_android.adapter.FamilyMemorabiliaRvAdapter; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.databinding.ActivityFamilyAssetsBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.List; /** * @author Ljj @@ -48,6 +43,13 @@ @Override public void initView() { binding.refreshLayout.setEnableRefresh(false); binding.refreshLayout.setEnableLoadMore(true); binding.refreshLayout.setEnableOverScrollDrag(true); binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> { // viewModel.getMoreFamilyMemorabilia(); }); adapter = new FamilyAssetsRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); @@ -93,7 +95,7 @@ // 设置pop透明效果 popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000)); // 设置pop出入动画 popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_add); popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_operate); // 设置pop获取焦点,如果为false点击返回按钮会退出当前Activity,如果pop中有Editor的话,focusable必须要为true popupWindow.setFocusable(true); // 设置pop可点击,为false点击事件无效,默认为true app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivity.java
@@ -1,6 +1,5 @@ package com.application.zhangshi_app_android.ui.function; import android.content.DialogInterface; import android.content.Intent; import android.graphics.drawable.ColorDrawable; import android.view.KeyEvent; @@ -8,22 +7,15 @@ import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.PopupWindow; import android.widget.TextView; import androidx.annotation.IdRes; import androidx.annotation.LayoutRes; import androidx.appcompat.app.AlertDialog; import androidx.databinding.DataBindingUtil; import androidx.databinding.ViewDataBinding; import androidx.drawerlayout.widget.DrawerLayout; import androidx.lifecycle.Observer; import com.android.app_base.base.BaseConfig; import com.android.app_base.base.dialog.BaseDialog; import com.android.app_base.base.dialog.UIDialog; import com.android.app_base.base.view.BaseActivity; import com.android.app_base.manager.AppManager; import com.android.app_base.utils.ScreenSizeUtils; import com.android.app_base.widget.LinearItemDecoration; @@ -34,7 +26,6 @@ import com.application.zhangshi_app_android.databinding.ActivityFamilyMemorabiliaBinding; import com.application.zhangshi_app_android.databinding.PopSearchBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import com.hjq.bar.TitleBar; import java.util.List; @@ -67,6 +58,13 @@ @Override public void initView() { binding.refreshLayout.setEnableRefresh(false); binding.refreshLayout.setEnableLoadMore(true); binding.refreshLayout.setEnableOverScrollDrag(true); binding.refreshLayout.setOnLoadMoreListener(refreshLayout -> { viewModel.getMoreFamilyMemorabilia(); }); adapter = new FamilyMemorabiliaRvAdapter(this,viewModel); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); @@ -87,6 +85,7 @@ }); binding.ivSearchType.setOnClickListener(v -> { hideSoftKeyboard(); mSearchPopupWindow.setWidth(binding.layoutSearch.getMeasuredWidth()); mSearchPopupWindow.showAsDropDown(binding.layoutSearch,0,0); }); @@ -148,9 +147,9 @@ return; } if (familyMemorabiliaBeans.isEmpty()){ viewModel.getOperateTypeLiveData().postValue(1); viewModel.getOperateTypeLiveData().setValue(1); }else{ viewModel.getOperateTypeLiveData().postValue(2); viewModel.getOperateTypeLiveData().setValue(2); } } }); @@ -158,6 +157,12 @@ @Override public void onChanged(List<FamilyMemorabiliaBean> familyMemorabiliaBeans) { adapter.setData(familyMemorabiliaBeans); } }); viewModel.getMoreListLiveData().observe(this, new Observer<List<FamilyMemorabiliaBean>>() { @Override public void onChanged(List<FamilyMemorabiliaBean> familyMemorabiliaBeans) { adapter.addData(familyMemorabiliaBeans); } }); viewModel.getOperateTypeLiveData().observe(this, integer -> { @@ -175,19 +180,20 @@ adapter.setCheckable(true); }else if (integer == 2){ binding.ivOperate.setBackgroundResource(R.drawable.ic_delete_white); new UIDialog.Builder(this) .setTitle("您确定要删除项目吗") .setContent("项目删除后将无法恢复") .setConfirm("确定") .setCancel("取消") .setListener(new UIDialog.OnListener() { @Override public void onConfirm(BaseDialog dialog) { viewModel.delete(); } }) .show(); adapter.setCheckable(true); binding.ivOperate.setOnClickListener(v -> { new UIDialog.Builder(this) .setTitle("您确定要删除项目吗") .setContent("项目删除后将无法恢复") .setConfirm("确定") .setCancel("取消") .setListener(new UIDialog.OnListener() { @Override public void onConfirm(BaseDialog dialog) { viewModel.delete(); } }) .show(); }); } }); } @@ -203,10 +209,10 @@ // 设置pop透明效果 popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000)); // 设置pop出入动画 popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_add); // 设置pop获取焦点,如果为false点击返回按钮会退出当前Activity,如果pop中有Editor的话,focusable必须要为true popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_operate); // // 设置pop获取焦点,如果为false点击返回按钮会退出当前Activity,如果pop中有Editor的话,focusable必须要为true popupWindow.setFocusable(true); // 设置pop可点击,为false点击事件无效,默认为true // // 设置pop可点击,为false点击事件无效,默认为true popupWindow.setTouchable(true); // 设置点击pop外侧消失,默认为false;在focusable为true时点击外侧始终消失 popupWindow.setOutsideTouchable(false); @@ -221,10 +227,17 @@ } @Override protected void dataFinish() { super.dataFinish(); binding.refreshLayout.finishLoadMore(); } @Override protected void hide() { super.hide(); binding.layoutDataNull.setVisibility(View.GONE); binding.recyclerView.setVisibility(View.VISIBLE); binding.refreshLayout.finishLoadMore(); } @Override @@ -243,4 +256,15 @@ mOperatePopupWindow.dismiss(); } } @Override protected void onDestroy() { super.onDestroy(); if (mSearchPopupWindow != null){ mSearchPopupWindow.dismiss(); } if (mOperatePopupWindow != null){ mOperatePopupWindow.dismiss(); } } } app/src/main/java/com/application/zhangshi_app_android/ui/function/FamilyMemorabiliaActivityViewModel.java
@@ -29,6 +29,7 @@ import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import io.reactivex.functions.Action; /** * @author Ljj @@ -41,7 +42,8 @@ private MutableLiveData<List<FamilyMemorabiliaBean>> dataListLiveData;//所有数据 private MutableLiveData<Integer> operateTypeLiveData;//操作类型 0 选择操作 1.完成 2.删除 private MutableLiveData<FamilyMemorabiliaRequestBean> requestBeanMutableLiveData; private MutableLiveData<FamilyMemorabiliaRequestBean> requestBeanMutableLiveData;//请求参数 private MutableLiveData<List<FamilyMemorabiliaBean>> moreListLiveData;//下拉加载数据 public FamilyMemorabiliaActivityViewModel(@NonNull Application application) { super(application); } @@ -54,9 +56,7 @@ * 获取家大事记 */ public void getFamilyMemorabilia() { if (getRequestBeanMutableLiveData().getValue() == null){ getRequestBeanMutableLiveData().setValue(new FamilyMemorabiliaRequestBean()); } System.out.println(getRequestBeanMutableLiveData().getValue()); model.getFamilyMemorabilia(getRequestBeanMutableLiveData().getValue().getMap()) .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<FamilyMemorabiliaResponseBean>>() { @@ -73,6 +73,50 @@ }else { changeStateView(StateViewEnum.HIDE); dataListLiveData.postValue(data.getData().getData()); } }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } /** * 获取家大事记 加载更多 */ public void getMoreFamilyMemorabilia() { requestBeanMutableLiveData.getValue().setPageNum(requestBeanMutableLiveData.getValue().getPageNum() + 1); model.getFamilyMemorabilia(getRequestBeanMutableLiveData().getValue().getMap()) .compose(RxUtils.schedulersTransformer()) .doFinally(new Action() { @Override public void run() throws Exception { changeStateView(StateViewEnum.DATA_FINISH); } }) .subscribe(new Observer<ResultData<FamilyMemorabiliaResponseBean>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<FamilyMemorabiliaResponseBean> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().getData().isEmpty()){ messageLiveData.postValue("没有更多数据了"); }else { changeStateView(StateViewEnum.HIDE); moreListLiveData.postValue(data.getData().getData()); } }else { messageLiveData.postValue(data.getMsg()); @@ -152,6 +196,20 @@ this.checkListLiveData = checkListLiveData; } public MutableLiveData<FamilyMemorabiliaRequestBean> getRequestBeanMutableLiveData() { if (requestBeanMutableLiveData == null){ requestBeanMutableLiveData = new MutableLiveData<>(); } if (requestBeanMutableLiveData.getValue() == null){ requestBeanMutableLiveData.setValue(new FamilyMemorabiliaRequestBean()); } return requestBeanMutableLiveData; } public void setRequestBeanMutableLiveData(MutableLiveData<FamilyMemorabiliaRequestBean> requestBeanMutableLiveData) { this.requestBeanMutableLiveData = requestBeanMutableLiveData; } public MutableLiveData<List<FamilyMemorabiliaBean>> getDataListLiveData() { if (dataListLiveData == null){ dataListLiveData = new MutableLiveData<>(); @@ -163,19 +221,15 @@ this.dataListLiveData = dataListLiveData; } @NonNull public MutableLiveData<FamilyMemorabiliaRequestBean> getRequestBeanMutableLiveData() { if (requestBeanMutableLiveData == null){ requestBeanMutableLiveData = new MutableLiveData<>(); public MutableLiveData<List<FamilyMemorabiliaBean>> getMoreListLiveData() { if (moreListLiveData == null){ moreListLiveData = new MutableLiveData<>(); } if (requestBeanMutableLiveData.getValue()==null){ requestBeanMutableLiveData.postValue(new FamilyMemorabiliaRequestBean()); } return requestBeanMutableLiveData; return moreListLiveData; } public void setRequestBeanMutableLiveData(MutableLiveData<FamilyMemorabiliaRequestBean> requestBeanMutableLiveData) { this.requestBeanMutableLiveData = requestBeanMutableLiveData; public void setMoreListLiveData(MutableLiveData<List<FamilyMemorabiliaBean>> moreListLiveData) { this.moreListLiveData = moreListLiveData; } public MutableLiveData<Integer> getOperateTypeLiveData() { @@ -190,6 +244,10 @@ this.operateTypeLiveData = operateTypeLiveData; } /** * 改变排序 * @param b true 降序 false 升序 */ public void changeOrder(boolean b) { List<FamilyMemorabiliaBean> list = getDataListLiveData().getValue(); if (list == null || list.isEmpty()){ app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
@@ -71,6 +71,33 @@ AppManager.getAppManager().startActivity(GrowthExperienceActivity.class); } }); binding.layoutHonorCollection.setOnClickListener(v->{ AppManager.getAppManager().startActivity(HonorCollectionActivity.class); }); binding.layoutLittleDoctor.setOnClickListener(v->{ AppManager.getAppManager().startActivity(LittleDoctorActivity.class); }); binding.layoutCleanStorage.setOnClickListener(v->{ AppManager.getAppManager().startActivity(CleanStorageActivity.class); }); binding.layoutPet.setOnClickListener(v->{ AppManager.getAppManager().startActivity(PetActivity.class); }); binding.layoutIncomeAndExpenses.setOnClickListener(v->{ AppManager.getAppManager().startActivity(IncomeAndExpensesActivity.class); }); binding.layoutProperty.setOnClickListener(v->{ AppManager.getAppManager().startActivity(PropertyActivity.class); }); binding.layoutHundredWish.setOnClickListener(v->{ AppManager.getAppManager().startActivity(HundredWishActivity.class); }); binding.layoutCertificateOfHonor.setOnClickListener(v->{ AppManager.getAppManager().startActivity(CertificateOfHonorActivity.class); }); binding.layoutMarriage.setOnClickListener(v->{ AppManager.getAppManager().startActivity(MarriageActivity.class); }); } @Override app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivity.java
@@ -9,7 +9,6 @@ import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.FamilyAssetsRvAdapter; import com.application.zhangshi_app_android.adapter.HomeDevicesRvAdapter; import com.application.zhangshi_app_android.databinding.ActivityHomeDevicesBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; @@ -86,7 +85,7 @@ // 设置pop透明效果 popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000)); // 设置pop出入动画 popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_add); popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_operate); // 设置pop获取焦点,如果为false点击返回按钮会退出当前Activity,如果pop中有Editor的话,focusable必须要为true popupWindow.setFocusable(true); // 设置pop可点击,为false点击事件无效,默认为true app/src/main/java/com/application/zhangshi_app_android/ui/function/HomeDevicesActivityViewModel.java
@@ -5,22 +5,18 @@ import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.StateViewEnum; import com.android.app_base.base.viewmodel.BaseViewModel; import com.android.app_base.http.ResultData; import com.android.app_base.utils.RxUtils; import com.application.zhangshi_app_android.bean.FamilyAssetsBean; import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.data.DataRepository; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Comparator; import java.util.Date; import java.util.HashMap; @@ -48,14 +44,6 @@ } public void getHomeDevices(){ List<HomeDevicesBean> list = new ArrayList<>(); list.add(new HomeDevicesBean(1,"电视","2023-04-03","张三","夏普液晶电视","客厅","4k超高清","")); list.add(new HomeDevicesBean(1,"电视","2023-04-02","张三","夏普液晶电视","客厅","4k超高清","")); list.add(new HomeDevicesBean(1,"电视","2023-04-01","张三","夏普液晶电视","客厅","4k超高清","")); if (list != null && !list.isEmpty()){ dataListLiveData.postValue(list); return; } model.getHomeDevices(new HashMap<>()) .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<HomeDevicesResponseBean>>() { @@ -118,8 +106,8 @@ Date date1 = null; Date date2 = null; try { date1 = format.parse(o1.getCreateTime()); date2 = format.parse(o2.getCreateTime()); date1 = format.parse(o1.getCreateDate()); date2 = format.parse(o2.getCreateDate()); } catch (ParseException e) { throw new RuntimeException(e); } app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivity.java
New file @@ -0,0 +1,57 @@ package com.application.zhangshi_app_android.ui.function; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.FamilyAssetsRvAdapter; import com.application.zhangshi_app_android.adapter.HonorCollectionRvAdapter; import com.application.zhangshi_app_android.databinding.ActivityHonorCollectionBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; /** * @author Ljj * @date 2023.04.14. 20:50 * @desc 荣誉收藏 Activity */ public class HonorCollectionActivity extends DLBaseActivity<ActivityHonorCollectionBinding, HonorCollectionActivityViewModel> { private HonorCollectionRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_honor_collection; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new HonorCollectionRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); } @Override public void initData() { viewModel.getHonorCollections(); } @Override public void initLiveDataObserve() { viewModel.getDataListLiveData().observe(this, homeDevices -> { adapter.setData(homeDevices); }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionActivityViewModel.java
New file @@ -0,0 +1,92 @@ package com.application.zhangshi_app_android.ui.function; import static com.android.app_base.base.BaseConfig.CODE_SUCCESS; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.StateViewEnum; import com.android.app_base.base.viewmodel.BaseViewModel; import com.android.app_base.http.ResultData; import com.android.app_base.utils.RxUtils; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.HonorCollectionBean; import com.application.zhangshi_app_android.bean.HonorCollectionRequestBean; import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean; import com.application.zhangshi_app_android.data.DataRepository; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; /** * @author Ljj * @date 2023.04.14. 20:53 * @desc 荣誉收藏 ViewModel */ public class HonorCollectionActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<HonorCollectionBean>> dataListLiveData; private HonorCollectionRequestBean requestBean = new HonorCollectionRequestBean(); public HonorCollectionActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<List<HonorCollectionBean>> getDataListLiveData() { if (dataListLiveData == null){ dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<HonorCollectionBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public void getHonorCollections() { model.getHonorCollections(requestBean.toMap()) .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<HonorCollectionResponseBean>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<HonorCollectionResponseBean> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().getData().isEmpty()){ changeStateView(StateViewEnum.DATA_NULL); }else { changeStateView(StateViewEnum.HIDE); dataListLiveData.postValue(data.getData().getData()); } }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionDetailActivity.java
New file @@ -0,0 +1,99 @@ package com.application.zhangshi_app_android.ui.function; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import androidx.recyclerview.widget.GridLayoutManager; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.ImageRvAdapter; import com.application.zhangshi_app_android.bean.HonorCollectionBean; import com.application.zhangshi_app_android.databinding.ActivityHonorCollectionDetailBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.14. 22:21 * @desc */ public class HonorCollectionDetailActivity extends DLBaseActivity<ActivityHonorCollectionDetailBinding, HonorCollectionDetailActivityViewModel> { private ImageRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_honor_collection_detail; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { if (getIntent().hasExtra("bean")){ viewModel.getBeanLiveData().setValue((HonorCollectionBean) getIntent().getSerializableExtra("bean")); } } @Override public void initView() { adapter = new ImageRvAdapter(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); binding.rvImage.setLayoutManager(gridLayoutManager); binding.rvImage.setNestedScrollingEnabled(false); setIsEdited(false); } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getBeanLiveData().observe(this,bean -> { if (bean!=null){ String url = bean.getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } }); } public void setIsEdited(boolean isEdited){ disableAllEditText(getContentView(),isEdited); adapter.setIsEdited(isEdited); } public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) { for (int i = 0; i < viewGroup.getChildCount(); i++) { View child = viewGroup.getChildAt(i); if (child instanceof ViewGroup) { disableAllEditText((ViewGroup) child,isEdited); } else if (child instanceof EditText) { child.setEnabled(isEdited); child.setFocusable(isEdited); child.setFocusableInTouchMode(isEdited); if (!isEdited){ child.clearFocus(); } } } } } app/src/main/java/com/application/zhangshi_app_android/ui/function/HonorCollectionDetailActivityViewModel.java
New file @@ -0,0 +1,40 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.HonorCollectionBean; import com.application.zhangshi_app_android.data.DataRepository; /** * @author Ljj * @date 2023.04.14. 22:24 * @desc */ public class HonorCollectionDetailActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<HonorCollectionBean> beanLiveData; public HonorCollectionDetailActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<HonorCollectionBean> getBeanLiveData() { if (beanLiveData == null){ beanLiveData = new MutableLiveData<>(); } return beanLiveData; } public void setBeanLiveData(MutableLiveData<HonorCollectionBean> beanLiveData) { this.beanLiveData = beanLiveData; } } app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivity.java
New file @@ -0,0 +1,58 @@ package com.application.zhangshi_app_android.ui.function; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.HundredWishRvAdapter; import com.application.zhangshi_app_android.adapter.PropertyRvAdapter; import com.application.zhangshi_app_android.databinding.ActivityHundredWishBinding; import com.application.zhangshi_app_android.databinding.ActivityPropertyBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; /** * @author Ljj * @date 2023.04.23. 14:15 * @desc 百年心愿 */ public class HundredWishActivity extends DLBaseActivity<ActivityHundredWishBinding, HundredWishActivityViewModel> { private HundredWishRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_hundred_wish; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new HundredWishRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); } @Override public void initData() { viewModel.getHundredWish(); } @Override public void initLiveDataObserve() { viewModel.getDataListLiveData().observe(this, dataList -> { adapter.setData(dataList); }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishActivityViewModel.java
New file @@ -0,0 +1,70 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.HundredWishBean; import com.application.zhangshi_app_android.bean.PropertyBean; import com.application.zhangshi_app_android.data.DataRepository; import java.util.ArrayList; import java.util.List; /** * @author Ljj * @date 2023.04.23. 20:04 * @desc */ public class HundredWishActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<HundredWishBean>> dataListLiveData; public HundredWishActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<List<HundredWishBean>> getDataListLiveData() { if (dataListLiveData == null) { dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<HundredWishBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public void getHundredWish() { List<HundredWishBean> beans = new ArrayList<>(); for (int i = 0; i < 10; i++) { HundredWishBean bean = new HundredWishBean(); bean.setTitle("标题"); bean.setCreateTime("2020-01-01"); bean.setReason("始于何因"); bean.setBeneficiary("受惠人"); bean.setHeir("继承人"); bean.setDifficulty("实现难度"); bean.setIsEffective(1); bean.setRemark("备注"); beans.add(bean); } HundredWishBean bean = new HundredWishBean(); bean.setTitle("标题aaaaaaaaaaaaaa"); bean.setCreateTime("2020-01-01"); bean.setReason("始于何因"); bean.setBeneficiary("受惠人"); bean.setHeir("继承人"); bean.setDifficulty("实现难度"); bean.setIsEffective(1); bean.setRemark("备注"); beans.add(bean); dataListLiveData.setValue(beans); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishDetailActivity.java
New file @@ -0,0 +1,102 @@ package com.application.zhangshi_app_android.ui.function; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import androidx.recyclerview.widget.GridLayoutManager; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.ImageRvAdapter; import com.application.zhangshi_app_android.bean.HundredWishBean; import com.application.zhangshi_app_android.bean.PropertyBean; import com.application.zhangshi_app_android.databinding.ActivityHundredWishDetailBinding; import com.application.zhangshi_app_android.databinding.ActivityPropertyDetailBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.23. 20:18 * @desc */ public class HundredWishDetailActivity extends DLBaseActivity<ActivityHundredWishDetailBinding,HundredWishDetailActivityViewModel> { private ImageRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_hundred_wish_detail; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { if (getIntent().hasExtra("bean")){ viewModel.getBeanLiveData().setValue((HundredWishBean) getIntent().getSerializableExtra("bean")); } } @Override public void initView() { adapter = new ImageRvAdapter(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); binding.rvImage.setLayoutManager(gridLayoutManager); binding.rvImage.setNestedScrollingEnabled(false); setIsEdited(false); } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getBeanLiveData().observe(this,bean -> { if (bean!=null){ String url = bean.getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } }); } public void setIsEdited(boolean isEdited){ disableAllEditText(getContentView(),isEdited); adapter.setIsEdited(isEdited); } public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) { for (int i = 0; i < viewGroup.getChildCount(); i++) { View child = viewGroup.getChildAt(i); if (child instanceof ViewGroup) { disableAllEditText((ViewGroup) child,isEdited); } else if (child instanceof EditText) { child.setEnabled(isEdited); child.setFocusable(isEdited); child.setFocusableInTouchMode(isEdited); if (!isEdited){ child.clearFocus(); } } } } } app/src/main/java/com/application/zhangshi_app_android/ui/function/HundredWishDetailActivityViewModel.java
New file @@ -0,0 +1,42 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.HundredWishBean; import com.application.zhangshi_app_android.bean.PropertyBean; import com.application.zhangshi_app_android.data.DataRepository; /** * @author Ljj * @date 2023.04.23. 20:19 * @desc */ public class HundredWishDetailActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<HundredWishBean> beanLiveData; public HundredWishDetailActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<HundredWishBean> getBeanLiveData() { if (beanLiveData == null) { beanLiveData = new MutableLiveData<>(); } return beanLiveData; } public void setBeanLiveData(MutableLiveData<HundredWishBean> beanLiveData) { this.beanLiveData = beanLiveData; } } app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivity.java
New file @@ -0,0 +1,58 @@ package com.application.zhangshi_app_android.ui.function; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.CleanStorageRvAdapter; import com.application.zhangshi_app_android.adapter.IncomeAndExpensesRvAdapter; import com.application.zhangshi_app_android.databinding.ActivityCleanStorageBinding; import com.application.zhangshi_app_android.databinding.ActivityIncomeAndExpensesBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; /** * @author Ljj * @date 2023.04.20. 22:17 * @desc 收支台账 */ public class IncomeAndExpensesActivity extends DLBaseActivity<ActivityIncomeAndExpensesBinding, IncomeAndExpensesActivityViewModel> { private IncomeAndExpensesRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_income_and_expenses; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new IncomeAndExpensesRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); } @Override public void initData() { viewModel.getIncomeAndExpenses(); } @Override public void initLiveDataObserve() { viewModel.getDataListLiveData().observe(this, dataList -> { adapter.setData(dataList); }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesActivityViewModel.java
New file @@ -0,0 +1,89 @@ package com.application.zhangshi_app_android.ui.function; import static com.android.app_base.base.BaseConfig.CODE_SUCCESS; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.StateViewEnum; import com.android.app_base.base.viewmodel.BaseViewModel; import com.android.app_base.http.ResultData; import com.android.app_base.utils.RxUtils; import com.application.zhangshi_app_android.bean.CleanStorageBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean; import com.application.zhangshi_app_android.bean.IncomeAndExpensesResponseBean; import com.application.zhangshi_app_android.data.DataRepository; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; /** * @author Ljj * @date 2023.04.20. 22:21 * @desc */ public class IncomeAndExpensesActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<IncomeAndExpensesBean>> dataListLiveData; public IncomeAndExpensesActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<List<IncomeAndExpensesBean>> getDataListLiveData() { if (dataListLiveData == null) { dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<IncomeAndExpensesBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public void getIncomeAndExpenses() { model.getIncomeAndExpenses(new HashMap<>()) .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<IncomeAndExpensesResponseBean>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<IncomeAndExpensesResponseBean> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().getData().isEmpty()){ changeStateView(StateViewEnum.DATA_NULL); }else { changeStateView(StateViewEnum.HIDE); dataListLiveData.postValue(data.getData().getData()); } }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivity.java
New file @@ -0,0 +1,103 @@ package com.application.zhangshi_app_android.ui.function; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import androidx.recyclerview.widget.GridLayoutManager; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.ImageRvAdapter; import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean; import com.application.zhangshi_app_android.bean.LittleDoctorBean; import com.application.zhangshi_app_android.databinding.ActivityIncomeAndExpensesBinding; import com.application.zhangshi_app_android.databinding.ActivityIncomeAndExpensesDetailBinding; import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorDetailBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.20. 22:56 * @desc */ public class IncomeAndExpensesDetailActivity extends DLBaseActivity<ActivityIncomeAndExpensesDetailBinding, IncomeAndExpensesDetailActivityViewModel> { private ImageRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_income_and_expenses_detail; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { if (getIntent().hasExtra("bean")){ viewModel.getBeanLiveData().setValue((IncomeAndExpensesBean) getIntent().getSerializableExtra("bean")); } } @Override public void initView() { adapter = new ImageRvAdapter(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); binding.rvImage.setLayoutManager(gridLayoutManager); binding.rvImage.setNestedScrollingEnabled(false); setIsEdited(false); } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getBeanLiveData().observe(this,bean -> { if (bean!=null){ String url = bean.getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } }); } public void setIsEdited(boolean isEdited){ disableAllEditText(getContentView(),isEdited); adapter.setIsEdited(isEdited); } public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) { for (int i = 0; i < viewGroup.getChildCount(); i++) { View child = viewGroup.getChildAt(i); if (child instanceof ViewGroup) { disableAllEditText((ViewGroup) child,isEdited); } else if (child instanceof EditText) { child.setEnabled(isEdited); child.setFocusable(isEdited); child.setFocusableInTouchMode(isEdited); if (!isEdited){ child.clearFocus(); } } } } } app/src/main/java/com/application/zhangshi_app_android/ui/function/IncomeAndExpensesDetailActivityViewModel.java
New file @@ -0,0 +1,40 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.IncomeAndExpensesBean; import com.application.zhangshi_app_android.data.DataRepository; /** * @author Ljj * @date 2023.04.20. 22:59 * @desc */ public class IncomeAndExpensesDetailActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<IncomeAndExpensesBean> beanLiveData; public IncomeAndExpensesDetailActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<IncomeAndExpensesBean> getBeanLiveData() { if (beanLiveData == null){ beanLiveData = new MutableLiveData<>(); } return beanLiveData; } public void setBeanLiveData(IncomeAndExpensesBean littleDoctorBean) { beanLiveData.setValue(littleDoctorBean); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivity.java
New file @@ -0,0 +1,57 @@ package com.application.zhangshi_app_android.ui.function; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.HonorCollectionRvAdapter; import com.application.zhangshi_app_android.adapter.LittleDoctorRvAdapter; import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; public class LittleDoctorActivity extends DLBaseActivity<ActivityLittleDoctorBinding,LittleDoctorActivityViewModel> { private LittleDoctorRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_little_doctor; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new LittleDoctorRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); } @Override public void initData() { viewModel.getLittleDoctors(); } @Override public void initLiveDataObserve() { viewModel.getDataListLiveData().observe(this, homeDevices -> { adapter.setData(homeDevices); }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorActivityViewModel.java
New file @@ -0,0 +1,99 @@ package com.application.zhangshi_app_android.ui.function; import static com.android.app_base.base.BaseConfig.CODE_SUCCESS; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.StateViewEnum; import com.android.app_base.base.viewmodel.BaseViewModel; import com.android.app_base.http.ResultData; import com.android.app_base.utils.RxUtils; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.HonorCollectionBean; import com.application.zhangshi_app_android.bean.HonorCollectionResponseBean; import com.application.zhangshi_app_android.bean.LittleDoctorBean; import com.application.zhangshi_app_android.bean.LittleDoctorRequestBean; import com.application.zhangshi_app_android.bean.LittleDoctorResponseBean; import com.application.zhangshi_app_android.data.DataRepository; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; /** * @author Ljj * @date 2023.04.15. 14:04 * @desc */ public class LittleDoctorActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<LittleDoctorBean>> dataListLiveData; private LittleDoctorRequestBean requestBean = new LittleDoctorRequestBean(); public LittleDoctorActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<List<LittleDoctorBean>> getDataListLiveData() { if (dataListLiveData == null){ dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<LittleDoctorBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public void getLittleDoctors() { model.getLittleDoctors(requestBean.toMap()) .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<LittleDoctorResponseBean>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<LittleDoctorResponseBean> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().getData().isEmpty()){ changeStateView(StateViewEnum.DATA_NULL); }else { changeStateView(StateViewEnum.HIDE); dataListLiveData.postValue(data.getData().getData()); } }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivity.java
New file @@ -0,0 +1,95 @@ package com.application.zhangshi_app_android.ui.function; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import androidx.recyclerview.widget.GridLayoutManager; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.ImageRvAdapter; import com.application.zhangshi_app_android.bean.LittleDoctorBean; import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorDetailBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class LittleDoctorDetailActivity extends DLBaseActivity<ActivityLittleDoctorDetailBinding, LittleDoctorDetailActivityViewModel> { private ImageRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_little_doctor_detail; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { if (getIntent().hasExtra("bean")){ viewModel.getBeanLiveData().setValue((LittleDoctorBean) getIntent().getSerializableExtra("bean")); } } @Override public void initView() { adapter = new ImageRvAdapter(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); binding.rvImage.setLayoutManager(gridLayoutManager); binding.rvImage.setNestedScrollingEnabled(false); setIsEdited(false); } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getBeanLiveData().observe(this,bean -> { if (bean!=null){ String url = bean.getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } }); } public void setIsEdited(boolean isEdited){ disableAllEditText(getContentView(),isEdited); adapter.setIsEdited(isEdited); } public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) { for (int i = 0; i < viewGroup.getChildCount(); i++) { View child = viewGroup.getChildAt(i); if (child instanceof ViewGroup) { disableAllEditText((ViewGroup) child,isEdited); } else if (child instanceof EditText) { child.setEnabled(isEdited); child.setFocusable(isEdited); child.setFocusableInTouchMode(isEdited); if (!isEdited){ child.clearFocus(); } } } } } app/src/main/java/com/application/zhangshi_app_android/ui/function/LittleDoctorDetailActivityViewModel.java
New file @@ -0,0 +1,40 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.LittleDoctorBean; import com.application.zhangshi_app_android.data.DataRepository; /** * @author Ljj * @date 2023.04.15. 17:56 * @desc 小医生详情 ViewModel */ public class LittleDoctorDetailActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<LittleDoctorBean> beanLiveData; public LittleDoctorDetailActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<LittleDoctorBean> getBeanLiveData() { if (beanLiveData == null){ beanLiveData = new MutableLiveData<>(); } return beanLiveData; } public void setBeanLiveData(LittleDoctorBean littleDoctorBean) { beanLiveData.setValue(littleDoctorBean); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivity.java
New file @@ -0,0 +1,136 @@ package com.application.zhangshi_app_android.ui.function; import android.animation.ValueAnimator; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import android.widget.LinearLayout; import androidx.annotation.NonNull; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.databinding.ActivityMarriageBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; /** * @author Ljj * @date 2023.04.23. 23:23 * @desc 婚姻状况 Activity */ public class MarriageActivity extends DLBaseActivity<ActivityMarriageBinding,MarriageActivityViewModel> { @Override public int getLayoutId() { return R.layout.activity_marriage; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } private boolean isExpended = false; @Override public void initView() { } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getIsSpouseExpendedLiveData().observe(this, aBoolean -> { if (aBoolean){ binding.ivSpouseFold.setOnClickListener(view -> { collapseView(binding.cardSpouse,binding.layoutTitleSpouse); viewModel.getIsSpouseExpendedLiveData().setValue(false); }); }else { binding.ivSpouseFold.setOnClickListener(view -> { expendView(binding.cardSpouse); viewModel.getIsSpouseExpendedLiveData().setValue(true); }); } }); viewModel.getIsPredecessorExpendedLiveData().observe(this, aBoolean -> { if (aBoolean){ binding.ivPredecessorFold.setOnClickListener(view -> { collapseView(binding.cardPredecessor,binding.layoutTitlePredecessor); viewModel.getIsPredecessorExpendedLiveData().setValue(false); }); }else { binding.ivPredecessorFold.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { expendView(binding.cardPredecessor); viewModel.getIsPredecessorExpendedLiveData().setValue(true); } }); } }); viewModel.getIsProcreateExpendedLiveData().observe(this, aBoolean -> { if (aBoolean){ binding.ivProcreateFold.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { collapseView(binding.cardProcreate,binding.layoutTitleProcreate); viewModel.getIsProcreateExpendedLiveData().setValue(false); } }); }else { binding.ivProcreateFold.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { expendView(binding.cardProcreate); viewModel.getIsProcreateExpendedLiveData().setValue(true); } }); } }); } public void collapseView(View initialView,View collapsedView){ int initialHeight = initialView.getMeasuredHeight(); int collapsedHeight = collapsedView.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } initialView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); initialView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); initialView.startAnimation(a); } public void expendView(View initialView){ int initialHeight = initialView.getMeasuredHeight(); initialView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = initialView.getMeasuredHeight(); ValueAnimator animator = ValueAnimator.ofInt(initialHeight,targetHeight); animator.addUpdateListener(animation -> { initialView.getLayoutParams().height = (int) animation.getAnimatedValue(); initialView.requestLayout(); }); animator.setDuration(500); animator.start(); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/MarriageActivityViewModel.java
New file @@ -0,0 +1,65 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.data.DataRepository; /** * @author Ljj * @date 2023.04.23. 23:24 * @desc 婚姻状况 ViewModel */ public class MarriageActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<Boolean> isSpouseExpendedLiveData; private MutableLiveData<Boolean> isPredecessorExpendedLiveData; private MutableLiveData<Boolean> isProcreateExpendedLiveData; public MarriageActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<Boolean> getIsSpouseExpendedLiveData() { if (isSpouseExpendedLiveData == null){ isSpouseExpendedLiveData = new MutableLiveData<>(); isSpouseExpendedLiveData.setValue(false); } return isSpouseExpendedLiveData; } public void setIsSpouseExpendedLiveData(MutableLiveData<Boolean> isSpouseExpendedLiveData) { this.isSpouseExpendedLiveData = isSpouseExpendedLiveData; } public MutableLiveData<Boolean> getIsPredecessorExpendedLiveData() { if (isPredecessorExpendedLiveData == null){ isPredecessorExpendedLiveData = new MutableLiveData<>(); isPredecessorExpendedLiveData.setValue(false); } return isPredecessorExpendedLiveData; } public void setIsPredecessorExpendedLiveData(MutableLiveData<Boolean> isPredecessorExpendedLiveData) { this.isPredecessorExpendedLiveData = isPredecessorExpendedLiveData; } public MutableLiveData<Boolean> getIsProcreateExpendedLiveData() { if (isProcreateExpendedLiveData == null){ isProcreateExpendedLiveData = new MutableLiveData<>(); isProcreateExpendedLiveData.setValue(false); } return isProcreateExpendedLiveData; } public void setIsProcreateExpendedLiveData(MutableLiveData<Boolean> isProcreateExpendedLiveData) { this.isProcreateExpendedLiveData = isProcreateExpendedLiveData; } } app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivity.java
New file @@ -0,0 +1,58 @@ package com.application.zhangshi_app_android.ui.function; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.LittleDoctorRvAdapter; import com.application.zhangshi_app_android.adapter.PetRvAdapter; import com.application.zhangshi_app_android.databinding.ActivityLittleDoctorBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; /** * @author Ljj * @date 2023.04.17. 18:21 * @desc */ public class PetActivity extends DLBaseActivity<ActivityLittleDoctorBinding,LittleDoctorActivityViewModel> { private PetRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_pet; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new PetRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); } @Override public void initData() { // viewModel.getPets(); } @Override public void initLiveDataObserve() { // viewModel.getDataListLiveData().observe(this, homeDevices -> { // adapter.setData(homeDevices); // }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/PetActivityViewModel.java
New file @@ -0,0 +1,24 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.data.DataRepository; /** * @author Ljj * @date 2023.04.17. 18:23 * @desc */ public class PetActivityViewModel extends BaseViewModel<DataRepository> { public PetActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivity.java
New file @@ -0,0 +1,56 @@ package com.application.zhangshi_app_android.ui.function; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.PropertyRvAdapter; import com.application.zhangshi_app_android.databinding.ActivityPropertyBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; /** * @author Ljj * @date 2023.04.21. 18:55 * @desc 个人财产 Activity */ public class PropertyActivity extends DLBaseActivity<ActivityPropertyBinding, PropertyActivityViewModel> { private PropertyRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_property; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { } @Override public void initView() { adapter = new PropertyRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.recyclerView.addItemDecoration(itemDecoration); binding.recyclerView.setAdapter(adapter); } @Override public void initData() { viewModel.getProperty(); } @Override public void initLiveDataObserve() { viewModel.getDataListLiveData().observe(this, dataList -> { adapter.setData(dataList); }); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyActivityViewModel.java
New file @@ -0,0 +1,60 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.PropertyBean; import com.application.zhangshi_app_android.data.DataRepository; import java.util.ArrayList; import java.util.List; /** * @author Ljj * @date 2023.04.21. 19:10 * @desc 个人财产 ViewModel */ public class PropertyActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<PropertyBean>> dataListLiveData; public PropertyActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<List<PropertyBean>> getDataListLiveData() { if (dataListLiveData == null) { dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<PropertyBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public void getProperty() { List<PropertyBean> cleanStorageBeans = new ArrayList<>(); for (int i = 0; i < 10; i++) { PropertyBean bean = new PropertyBean(); bean.setType("房产"); bean.setName("房产"); bean.setPrice("1000"); bean.setCreateTime("2020-01-01"); bean.setTerm("2020-01-01"); bean.setStatus("变更"); bean.setPropertyRight("产权"); bean.setLocation("位置"); bean.setRemark("备注"); cleanStorageBeans.add(bean); } dataListLiveData.setValue(cleanStorageBeans); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivity.java
New file @@ -0,0 +1,102 @@ package com.application.zhangshi_app_android.ui.function; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import androidx.recyclerview.widget.GridLayoutManager; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.ImageRvAdapter; import com.application.zhangshi_app_android.bean.CleanStorageBean; import com.application.zhangshi_app_android.bean.PropertyBean; import com.application.zhangshi_app_android.databinding.ActivityCleanStorageDetailBinding; import com.application.zhangshi_app_android.databinding.ActivityPropertyDetailBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.21. 21:02 * @desc */ public class PropertyDetailActivity extends DLBaseActivity<ActivityPropertyDetailBinding,PropertyDetailActivityViewModel> { private ImageRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_property_detail; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { if (getIntent().hasExtra("bean")){ viewModel.getBeanLiveData().setValue((PropertyBean) getIntent().getSerializableExtra("bean")); } } @Override public void initView() { adapter = new ImageRvAdapter(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); binding.rvImage.setLayoutManager(gridLayoutManager); binding.rvImage.setNestedScrollingEnabled(false); setIsEdited(false); } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getBeanLiveData().observe(this,bean -> { if (bean!=null){ String url = bean.getUrl(); if (url == null||url.isEmpty()){ return; } List<String> list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } }); } public void setIsEdited(boolean isEdited){ disableAllEditText(getContentView(),isEdited); adapter.setIsEdited(isEdited); } public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) { for (int i = 0; i < viewGroup.getChildCount(); i++) { View child = viewGroup.getChildAt(i); if (child instanceof ViewGroup) { disableAllEditText((ViewGroup) child,isEdited); } else if (child instanceof EditText) { child.setEnabled(isEdited); child.setFocusable(isEdited); child.setFocusableInTouchMode(isEdited); if (!isEdited){ child.clearFocus(); } } } } } app/src/main/java/com/application/zhangshi_app_android/ui/function/PropertyDetailActivityViewModel.java
New file @@ -0,0 +1,42 @@ package com.application.zhangshi_app_android.ui.function; import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.MutableLiveData; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.bean.CleanStorageBean; import com.application.zhangshi_app_android.bean.PropertyBean; import com.application.zhangshi_app_android.data.DataRepository; /** * @author Ljj * @date 2023.04.21. 21:16 * @desc */ public class PropertyDetailActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<PropertyBean> beanLiveData; public PropertyDetailActivityViewModel(@NonNull Application application) { super(application); } @Override protected DataRepository initModel() { return DataRepository.getInstance(); } public MutableLiveData<PropertyBean> getBeanLiveData() { if (beanLiveData == null) { beanLiveData = new MutableLiveData<>(); } return beanLiveData; } public void setBeanLiveData(MutableLiveData<PropertyBean> beanLiveData) { this.beanLiveData = beanLiveData; } } app/src/main/java/com/application/zhangshi_app_android/ui/home/HomeFragment.java
@@ -1,11 +1,19 @@ package com.application.zhangshi_app_android.ui.home; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.PopupWindow; import com.android.app_base.base.view.BaseFragment; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.HomeMemberAdapter; import com.application.zhangshi_app_android.bean.HomeMemberBean; import com.application.zhangshi_app_android.databinding.FragmentHomeBinding; import com.hjq.bar.TitleBar; /** * @author Ljj @@ -13,6 +21,9 @@ * @desc 首页 Fragment */ public class HomeFragment extends BaseFragment<FragmentHomeBinding,HomeFragmentViewModel> { private PopupWindow mPopupWindow; private HomeMemberAdapter homeMemberAdapter; public HomeFragment() { } @@ -40,6 +51,23 @@ @Override protected void initView() { mPopupWindow = new PopupWindow(getSelfActivity()); mPopupWindow.setContentView(View.inflate(getSelfActivity(),R.layout.pop_basic_information,null)); mPopupWindow.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); mPopupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); mPopupWindow.setBackgroundDrawable(new ColorDrawable(0x0000)); mPopupWindow.setAnimationStyle(com.android.app_base.R.style.pop_info); mPopupWindow.setFocusable(true); mPopupWindow.setTouchable(true); mPopupWindow.setOutsideTouchable(true); homeMemberAdapter = new HomeMemberAdapter(getSelfActivity()); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_8)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.rvHomeMember.addItemDecoration(itemDecoration); binding.rvHomeMember.setAdapter(homeMemberAdapter); } @Override @@ -51,4 +79,33 @@ protected void initLiveDataObserve() { } @Override protected boolean isStatusBarImmersionEnabled() { return true; } private boolean isShow = true; @Override public void onLeftClick(TitleBar titleBar) { if (isShow) { mPopupWindow.setHeight(binding.treeView.getHeight()); mPopupWindow.showAsDropDown(binding.titleBar,0,0); isShow = false; }else { binding.rvHomeMember.setVisibility(View.VISIBLE); binding.treeView.setVisibility(View.GONE); binding.layoutHomeRootNet.setVisibility(View.GONE); homeMemberAdapter.addItem(new HomeMemberBean("第一代","张三","男",null,"2023.09.09","2023.09.09","12345678901","张氏公司","张四")); homeMemberAdapter.addItem(new HomeMemberBean("第一代","张三","男",null,"2023.09.09","2023.09.09","12345678901","张氏公司","张四")); homeMemberAdapter.addItem(new HomeMemberBean("第一代","张三","男",null,"2023.09.09","2023.09.09","12345678901","张氏公司","张四")); homeMemberAdapter.addItem(new HomeMemberBean("第一代","张三","男",null,"2023.09.09","2023.09.09","12345678901","张氏公司","张四")); homeMemberAdapter.addItem(new HomeMemberBean("第一代","张三","男",null,"2023.09.09","2023.09.09","12345678901","张氏公司","张四")); homeMemberAdapter.addItem(new HomeMemberBean("第一代","张三","男",null,"2023.09.09","2023.09.09","12345678901","张氏公司","张四")); isShow = true; } } } app/src/main/java/com/application/zhangshi_app_android/ui/main/MainActivity.java
@@ -54,6 +54,7 @@ super.onPageSelected(position); } }); binding.mainVp.setUserInputEnabled(false); // 不使用图标默认变色 binding.mainBnv.setItemIconTintList(null); app/src/main/java/com/application/zhangshi_app_android/widget/TreeView.java
New file @@ -0,0 +1,395 @@ package com.application.zhangshi_app_android.widget; import android.animation.ObjectAnimator; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.GestureDetector; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.ScaleGestureDetector; import android.view.View; import android.widget.OverScroller; import android.widget.RelativeLayout; import androidx.annotation.Nullable; import com.application.zhangshi_app_android.R; /** * @author Ljj * @date 2023.04.08. 20:03 * @desc */ public class TreeView extends RelativeLayout { private Context mContext; // 最小缩放比例 float smallScale = 0f; // 正常缩放比例 float normalScale = 0f; // 最大缩放比例 float bigScale = 0f; // 当前比例 float currentScale = 0f; // 缩放倍数 private static final float ZOOM_SCALE = 2f; private final View treeView; private final GestureDetector mGestureDetector; // 双指操作 private final ScaleGestureDetector mScaleGestureDetector; // 惯性滑动 private final OverScroller mOverScroller; private final FlingRunner mFlingRunner; // 是否放大 [默认是缩小,双击改变状态] boolean isZoomIn = false; // 放大后手指移动位置 private final OffSet moveOffset = new OffSet(); private boolean isDoubleClickZoomIn = false; public TreeView(Context context) { this(context, null); } public TreeView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public TreeView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { this(context, attrs, defStyleAttr, 0); } public TreeView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); setWillNotDraw(false); mContext = context; treeView = LayoutInflater.from(context).inflate(R.layout.layout_tree_view,this,false); LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); layoutParams.alignWithParent = true; layoutParams.addRule(CENTER_IN_PARENT); addView(treeView,layoutParams); mGestureDetector = new GestureDetector(context, new MyGestureListener()); mScaleGestureDetector = new ScaleGestureDetector(context, new MyScaleGestureListener()); mOverScroller = new OverScroller(context); mFlingRunner = new FlingRunner(); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); // view比例 float viewScale = (float) getWidth() / (float) getHeight(); // 图片比例 float bitScale = (float) treeView.getMeasuredWidth() / (float) treeView.getMeasuredHeight(); // // 如果图片比例大于view比例 // if (bitScale > viewScale) { // // 横向图片 // smallScale = (float) getWidth() / (float) treeView.getMeasuredWidth(); // bigScale = (float) getHeight() / (float) treeView.getMeasuredHeight() * ZOOM_SCALE; // } else { // // 纵向图片 // smallScale = (float) getHeight() / (float) treeView.getMeasuredHeight(); // bigScale = (float) getWidth() / (float) treeView.getMeasuredWidth() * ZOOM_SCALE; // } smallScale = (float) getWidth() / (float) treeView.getMeasuredWidth(); smallScale = (float) getHeight() / (float) treeView.getMeasuredHeight(); bigScale = (float) getHeight() / (float) treeView.getMeasuredHeight() * ZOOM_SCALE; // 当前缩放比例 = 缩放前的比例 currentScale = smallScale; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.scale(currentScale, currentScale, getWidth() / 2f, getHeight() / 2f); // 移动画布 if (isDoubleClickZoomIn){ if (currentScale <= bigScale) {//双击改变状态时偏移量随着缩放比例变化 float a = (currentScale - smallScale) / (bigScale - smallScale); moveOffset.setPhyX(moveOffset.getPhyX() * a); moveOffset.setPhyY(moveOffset.getPhyY() * a); } } canvas.translate(moveOffset.getLogX(currentScale), moveOffset.getLogY(currentScale)); } @Override public boolean onTouchEvent(MotionEvent event) { // 双指操作 boolean scaleTouchEvent = mScaleGestureDetector.onTouchEvent(event); // 是否是双指操作 if (mScaleGestureDetector.isInProgress()) { return scaleTouchEvent; } // 双击操作 return mGestureDetector.onTouchEvent(event); } private class MyGestureListener extends GestureDetector.SimpleOnGestureListener { // 单击情况 : 抬起[ACTION_UP]时候触发 // 双击情况 : 第二次抬起[ACTION_POINTER_UP]时候触发 @Override public boolean onSingleTapUp(MotionEvent e) { return super.onSingleTapUp(e); } // 长按时触发 [300ms] @Override public void onLongPress(MotionEvent e) { super.onLongPress(e); } // 滑动时候触发 类似 ACTION_MOVE 事件 @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // 如果是放大状态才能移动 // if (isZoomIn) { moveOffset.setPhyX(moveOffset.getPhyX() - distanceX); moveOffset.setPhyY(moveOffset.getPhyY() - distanceY); // 修正偏移量,防止图片移动时边缘出现白色背景 fixOffset(); invalidate(); // } return super.onScroll(e1, e2, distanceX, distanceY); } // 滑翔/飞翔 [惯性滑动] @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // mOverScroller.fling( // (int) moveOffset.getX(), // (int) moveOffset.getY(), // (int) velocityX, // (int) velocityY, // (int) (-(treeView.getMeasuredWidth() * bigScale - getWidth()) / 2), // (int) ((treeView.getMeasuredHeight() * bigScale - getWidth()) / 2), // (int) (-(treeView.getMeasuredHeight() * bigScale - getHeight()) / 2), // (int) ((treeView.getMeasuredHeight() * bigScale - getHeight()) / 2), // 300, // 300 // ); // // 设置fling效果 // mFlingRunner.run(); return super.onFling(e1, e2, velocityX, velocityY); } // 延时触发 [100ms] -- 常用与水波纹等效果 @Override public void onShowPress(MotionEvent e) { super.onShowPress(e); } // 按下 这里必须返回true 因为所有事件都是由按下出发的 @Override public boolean onDown(MotionEvent e) { return true; } // 双击 -- 第二次按下时候触发 (40ms - 300ms) [小于40ms是为了防止抖动] @Override public boolean onDoubleTap(MotionEvent e) { if (isDoubleClickZoomIn){ // 判断双击的位置是否在treeView上 float fixedWidth = treeView.getWidth()*(1-currentScale)/2; float fixedHeight = treeView.getHeight()*(1-currentScale)/2; if (treeView.getLeft()+fixedWidth <= e.getX() && e.getX() <= treeView.getRight()-fixedWidth && treeView.getTop()+fixedHeight <= e.getY() && e.getY() <= treeView.getBottom()-fixedHeight){ // 先改为放大,第一次双击是放大效果 isZoomIn = !isZoomIn; if (isZoomIn) { // 双击放大时定位到放大后双击的位置 // float currentX = e.getX() - (float) treeView.getWidth() / 2f; // float currentY = e.getY() - (float) treeView.getHeight() / 2f; // moveOffset.setX(currentX - currentX * bigScale); // moveOffset.setY(currentY - currentY * bigScale); // // 修正偏移量,防止图片移动时边缘出现白色背景 // fixOffset(); // 放大 放大到最大比例 //添加动画,更加流畅 scaleAnimation(currentScale, bigScale).start(); } else { // 缩小 缩小为原先留白的比例 scaleAnimation(bigScale, smallScale).start(); } } } return super.onDoubleTap(e); } // 双击 第二次的事件处理 DOWN MOVE UP 都会执行到这里 @Override public boolean onDoubleTapEvent(MotionEvent e) { return super.onDoubleTapEvent(e); } // 单击时触发 双击时不触发 @Override public boolean onSingleTapConfirmed(MotionEvent e) { return super.onSingleTapConfirmed(e); } } // 缩放动画 public ObjectAnimator scaleAnimation(float start, float end) { ObjectAnimator animator = ObjectAnimator.ofFloat(this, "currentScale", start, end); // 动画时间 animator.setDuration(500); return animator; } // 属性动画的关键!! 内部通过反射调用set方法来赋值 public void setCurrentScale(float currentScale) { this.currentScale = currentScale; invalidate(); } public void fixOffset() { // 当前图片放大后的宽 float currentWidth = treeView.getMeasuredWidth() * currentScale; // 当前图片放大后的高 float currentHeight = treeView.getMeasuredHeight() * currentScale; System.out.println("currentScale = " + currentScale); System.out.println("moveOffset.getLogX(currentScale) = " + moveOffset.getLogX(currentScale)); System.out.println("moveOffset.getLogY(currentScale) = " + moveOffset.getLogY(currentScale)); System.out.println("moveOffset.getPhyX() = " + moveOffset.getPhyX()); System.out.println("moveOffset.getPhyY() = " + moveOffset.getPhyY()); System.out.println("currentWidth = " + currentWidth); System.out.println("currentHeight = " + currentHeight); System.out.println(-(currentWidth - getWidth()) / 2 / bigScale); System.out.println(-(currentWidth - getWidth()) / 2 / currentScale); System.out.println(-(currentWidth - getWidth()) / 2 ); System.out.println(moveOffset.getPhyX()); // 右侧限制 moveOffset.setPhyX(Math.max(moveOffset.getPhyX(), -(currentWidth - getWidth()) / 2)); // 左侧限制 [左侧moveOffset.getX()为负数] moveOffset.setPhyX(Math.min(moveOffset.getPhyX(), (currentWidth - getWidth()) / 2 )); // 下侧限制 moveOffset.setPhyY(Math.max(moveOffset.getPhyY(), -(currentHeight - getHeight()) / 2 )); // 上侧限制 [上侧moveOffset.getY()为负数] moveOffset.setPhyY(Math.min(moveOffset.getPhyY(), (currentHeight - getHeight()) / 2 )); } class MyScaleGestureListener implements ScaleGestureDetector.OnScaleGestureListener { // 在双指操作开始时候获取当前缩放值 private float scaleFactor = 0f; // 双指操作 @Override public boolean onScale(ScaleGestureDetector detector) { // detector.getScaleFactor 缩放因子 currentScale = scaleFactor * detector.getScaleFactor(); // 刷新 invalidate(); return false; } // 双指操作开始 @Override public boolean onScaleBegin(ScaleGestureDetector detector) { scaleFactor = currentScale; // 注意这里要为true 表示开始双指操作 return true; } // 双指操作结束 @Override public void onScaleEnd(ScaleGestureDetector detector) { // 当前图片宽 float currentWidth = treeView.getMeasuredWidth() * currentScale; // 缩放前的图片宽 float smallWidth = treeView.getMeasuredWidth() * smallScale; // 缩放后的图片宽 float bigWidth = treeView.getMeasuredWidth() * bigScale; // 如果当前图片 < 缩放前的图片 if (currentWidth < smallWidth) { // 图片缩小 isZoomIn = false; scaleAnimation(currentScale, smallScale).start(); }else if (currentWidth > bigWidth) {// 如果当前状态 > 缩放后的图片 那么就让他改变为最大的状态 scaleAnimation(currentScale, bigScale).start(); // 双击时候 图片放大 isZoomIn = true; } else{ // 图片缩小 isZoomIn = true; } } } // 惯性滑动辅助 class FlingRunner implements Runnable { @Override public void run() { // 判断当前是否是执行 if (mOverScroller.computeScrollOffset()) { // 设置fling的值 moveOffset.setPhyX(mOverScroller.getCurrX()); moveOffset.setPhyY(mOverScroller.getCurrY()); // 继续执行FlingRunner.run postOnAnimation(this); // 刷新 invalidate(); } } } private static class OffSet { float phyX; float phyY; public OffSet() { } public float getPhyX() { return phyX; } public void setPhyX(float phyX) { this.phyX = phyX; } public float getPhyY() { return phyY; } public void setPhyY(float phyY) { this.phyY = phyY; } public float getLogX(float scale) { return phyX / scale; } public float getLogY(float scale) { return phyY / scale; } } /** * 是否双击放大 */ public void setDoubleClickZoomIn(boolean doubleClickZoomIn) { isDoubleClickZoomIn = doubleClickZoomIn; } } app/src/main/res/drawable-xhdpi/bg_home_root_net.png
app/src/main/res/drawable-xhdpi/bg_home_root_net_detail.png
app/src/main/res/drawable-xhdpi/bg_home_root_net_grass.png
app/src/main/res/drawable-xhdpi/ic_fold.pngapp/src/main/res/drawable-xhdpi/ic_radio_button.png
app/src/main/res/drawable-xhdpi/ic_unfold.pngapp/src/main/res/drawable-xxhdpi/bg_home_root_net.png
app/src/main/res/drawable-xxhdpi/bg_home_root_net_detail.png
app/src/main/res/drawable-xxhdpi/bg_home_root_net_grass.png
app/src/main/res/drawable-xxhdpi/ic_fold.pngapp/src/main/res/drawable-xxhdpi/ic_radio_button.png
app/src/main/res/drawable-xxhdpi/ic_unfold.pngapp/src/main/res/drawable/shape_ffd8e6f5_10_10_0_10.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFD8E6F5"/> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="0dp" /> </shape> app/src/main/res/drawable/shape_fffad1e0_10_10_0_10.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFAD1E0"/> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="0dp" /> </shape> app/src/main/res/layout/activity_certificate_of_honor.xml
New file @@ -0,0 +1,143 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.CertificateOfHonorActivityViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" > <FrameLayout android:layout_width="24dp" android:layout_height="24dp" android:layout_marginHorizontal="16dp" android:layout_gravity="center_vertical|end" > <ImageView android:id="@+id/iv_operate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/ic_operate" /> </FrameLayout> <LinearLayout android:id="@+id/layout_default" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" > <TextView android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="百年心愿(仅供参考)" android:layout_weight="1" android:textColor="@color/white" android:textSize="@dimen/sp_20" /> <ImageView android:id="@+id/iv_search_default" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:background="@drawable/ic_search" /> </LinearLayout> <LinearLayout android:id="@+id/layout_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginVertical="4dp" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" android:background="@color/white" android:paddingHorizontal="5dp" android:visibility="gone" > <ImageView android:id="@+id/iv_search" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_gray" /> <EditText android:id="@+id/et_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="5dp" android:textSize="14sp" android:textColor="#61000000" android:background="@null" android:imeOptions="actionSearch" android:text="" android:singleLine="true" android:hint="在“家大事记内搜索”" /> <ImageView android:id="@+id/iv_search_type" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_by" /> </LinearLayout> </com.android.app_base.widget.ExtendTitleBar> <LinearLayout android:id="@+id/layout_data_null" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/img_data_null" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:text="暂时还没有数据哦~\n点击”+”立即创建" android:textSize="14sp" android:textColor="#73000000" /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_certificate_of_honor_detail.xml
New file @@ -0,0 +1,225 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.CertificateOfHonorDetailActivityViewModel" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_normal_background" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:layout_width="match_parent" android:layout_height="wrap_content" app:title="@{viewModel.beanLiveData.name+`(仅供查看)`}" app:titleGravity="left" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingHorizontal="20dp" android:paddingBottom="20dp" > <TextView android:layout_width="wrap_content" android:layout_marginTop="@dimen/dp_10" android:layout_height="@dimen/dp_20" android:text="名称" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:autofillHints="creditCardNumber" android:textColorHint="#6b000000" android:textColor="#DE000000" android:textSize="16sp" android:text="@={viewModel.beanLiveData.name}" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="时间" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.time}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="类别" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:text="@={viewModel.beanLiveData.type}" android:textColor="#DE000000" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="证号/专业" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.certificateNumber}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="级别" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.level}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="有效时间" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.effectiveTime}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="获得时间" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@{viewModel.beanLiveData.getTime}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="存放位置" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.location}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="备注" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.remark}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="电子文件" android:textColor="#767375" android:textSize="12sp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_6b0000_stroke" > <com.android.app_base.widget.WrapRecyclerView android:id="@+id/rv_image" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginTop="2sp" android:paddingStart="10dp" android:paddingEnd="5dp" android:paddingVertical="10dp" /> </RelativeLayout> </LinearLayout> </ScrollView> </LinearLayout> </layout> app/src/main/res/layout/activity_clean_storage.xml
New file @@ -0,0 +1,144 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.CleanStorageActivityViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" > <FrameLayout android:layout_width="24dp" android:layout_height="24dp" android:layout_marginHorizontal="16dp" android:layout_gravity="center_vertical|end" > <ImageView android:id="@+id/iv_operate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/ic_operate" /> </FrameLayout> <LinearLayout android:id="@+id/layout_default" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" > <TextView android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="保洁收纳" android:layout_weight="1" android:textColor="@color/white" android:textSize="@dimen/sp_20" /> <ImageView android:id="@+id/iv_search_default" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:background="@drawable/ic_search" /> </LinearLayout> <LinearLayout android:id="@+id/layout_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginVertical="4dp" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" android:background="@color/white" android:paddingHorizontal="5dp" android:visibility="gone" > <ImageView android:id="@+id/iv_search" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_gray" /> <EditText android:id="@+id/et_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="5dp" android:textSize="14sp" android:textColor="#61000000" android:background="@null" android:imeOptions="actionSearch" android:text="" android:singleLine="true" android:hint="在“家大事记内搜索”" /> <ImageView android:id="@+id/iv_search_type" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_by" /> </LinearLayout> </com.android.app_base.widget.ExtendTitleBar> <LinearLayout android:id="@+id/layout_data_null" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/img_data_null" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:text="暂时还没有数据哦~\n点击”+”立即创建" android:textSize="14sp" android:textColor="#73000000" /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" tools:layout_editor_absoluteX="-81dp" tools:listitem="@layout/item_family_assets" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_clean_storage_detail.xml
New file @@ -0,0 +1,191 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.CleanStorageDetailActivityViewModel" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_normal_background" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:layout_width="match_parent" android:layout_height="wrap_content" app:title="保洁收纳" app:titleGravity="left" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingHorizontal="20dp" android:paddingBottom="20dp" > <TextView android:layout_width="wrap_content" android:layout_marginTop="@dimen/dp_10" android:layout_height="@dimen/dp_20" android:text="类型" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:autofillHints="creditCardNumber" android:textColorHint="#6b000000" android:textColor="#DE000000" android:textSize="16sp" android:text="@={viewModel.beanLiveData.type}" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="适用人" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.suitablePeople}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="类别" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:text="@={viewModel.beanLiveData.category}" android:textColor="#DE000000" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="保洁方法" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.cleanMethod}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="材料存放地" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.materialStorageLocation}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="放置地点" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.placementLocation}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="备注" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.remark}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="电子文件" android:textColor="#767375" android:textSize="12sp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_6b0000_stroke" > <com.android.app_base.widget.WrapRecyclerView android:id="@+id/rv_image" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginTop="2sp" android:paddingStart="10dp" android:paddingEnd="5dp" android:paddingVertical="10dp" /> </RelativeLayout> </LinearLayout> </ScrollView> </LinearLayout> </layout> app/src/main/res/layout/activity_family_assets.xml
@@ -127,17 +127,30 @@ /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" <com.scwang.smart.refresh.layout.SmartRefreshLayout android:id="@+id/refreshLayout" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" tools:layout_editor_absoluteX="-81dp" tools:listitem="@layout/item_family_memorabilia" /> > <com.scwang.smart.refresh.header.MaterialHeader android:layout_width="match_parent" android:layout_height="wrap_content" /> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" tools:itemCount="20" tools:listitem="@layout/item_family_assets" /> <com.scwang.smart.refresh.footer.BallPulseFooter android:layout_width="match_parent" android:layout_height="wrap_content"/> </com.scwang.smart.refresh.layout.SmartRefreshLayout> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/activity_family_assets_detail.xml
@@ -167,6 +167,7 @@ <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dp" android:background="@drawable/shape_6b0000_stroke" > <com.android.app_base.widget.WrapRecyclerView app/src/main/res/layout/activity_family_memorabilia.xml
@@ -127,18 +127,32 @@ android:textColor="#73000000" /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" <com.scwang.smart.refresh.layout.SmartRefreshLayout android:id="@+id/refreshLayout" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" tools:layout_editor_absoluteX="-81dp" tools:listitem="@layout/item_family_memorabilia" /> > <com.scwang.smart.refresh.header.MaterialHeader android:layout_width="match_parent" android:layout_height="wrap_content" /> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" tools:itemCount="20" tools:listitem="@layout/item_family_memorabilia" /> <com.scwang.smart.refresh.footer.BallPulseFooter android:layout_width="match_parent" android:layout_height="wrap_content"/> </com.scwang.smart.refresh.layout.SmartRefreshLayout> <com.google.android.material.floatingactionbutton.FloatingActionButton android:id="@+id/fab_add" app/src/main/res/layout/activity_home_devices.xml
@@ -134,10 +134,9 @@ android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" tools:layout_editor_absoluteX="-81dp" tools:listitem="@layout/item_family_memorabilia" /> tools:listitem="@layout/item_home_devices" /> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/activity_home_devices_detail.xml
@@ -68,7 +68,7 @@ android:layout_marginTop="2dp" android:inputType="text" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.createTime}" android:text="@={viewModel.beanLiveData.createDate}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" @@ -84,7 +84,7 @@ android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:text="@={viewModel.beanLiveData.people}" android:text="@={viewModel.beanLiveData.buyer}" android:textColor="#DE000000" android:textSize="16sp" /> <TextView @@ -119,7 +119,7 @@ android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.address}" android:text="@={viewModel.beanLiveData.location}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" app/src/main/res/layout/activity_honor_collection.xml
New file @@ -0,0 +1,144 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.HonorCollectionActivityViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" > <FrameLayout android:layout_width="24dp" android:layout_height="24dp" android:layout_marginHorizontal="16dp" android:layout_gravity="center_vertical|end" > <ImageView android:id="@+id/iv_operate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/ic_operate" /> </FrameLayout> <LinearLayout android:id="@+id/layout_default" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" > <TextView android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="荣誉收藏" android:layout_weight="1" android:textColor="@color/white" android:textSize="@dimen/sp_20" /> <ImageView android:id="@+id/iv_search_default" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:background="@drawable/ic_search" /> </LinearLayout> <LinearLayout android:id="@+id/layout_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginVertical="4dp" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" android:background="@color/white" android:paddingHorizontal="5dp" android:visibility="gone" > <ImageView android:id="@+id/iv_search" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_gray" /> <EditText android:id="@+id/et_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="5dp" android:textSize="14sp" android:textColor="#61000000" android:background="@null" android:imeOptions="actionSearch" android:text="" android:singleLine="true" android:hint="在“家大事记内搜索”" /> <ImageView android:id="@+id/iv_search_type" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_by" /> </LinearLayout> </com.android.app_base.widget.ExtendTitleBar> <LinearLayout android:id="@+id/layout_data_null" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/img_data_null" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:text="暂时还没有数据哦~\n点击”+”立即创建" android:textSize="14sp" android:textColor="#73000000" /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" tools:layout_editor_absoluteX="-81dp" tools:listitem="@layout/item_family_assets" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_honor_collection_detail.xml
New file @@ -0,0 +1,191 @@ <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.HonorCollectionDetailActivityViewModel" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_normal_background" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:layout_width="match_parent" android:layout_height="wrap_content" app:title="@{viewModel.beanLiveData.owner+`的`+ viewModel.beanLiveData.type}" app:titleGravity="left" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingHorizontal="20dp" android:paddingBottom="20dp" > <TextView android:layout_width="wrap_content" android:layout_marginTop="@dimen/dp_10" android:layout_height="@dimen/dp_20" android:text="名称" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:autofillHints="creditCardNumber" android:textColorHint="#6b000000" android:textColor="#DE000000" android:textSize="16sp" android:text="@={viewModel.beanLiveData.name}" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="获得时间" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.getTime}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="来源" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:text="@={viewModel.beanLiveData.source}" android:textColor="#DE000000" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="价值" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.price}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="持有人" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.owner}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="存放位置" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.location}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="备注" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.remark}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="电子文件" android:textColor="#767375" android:textSize="12sp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_6b0000_stroke" > <com.android.app_base.widget.WrapRecyclerView android:id="@+id/rv_image" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginTop="2sp" android:paddingStart="10dp" android:paddingEnd="5dp" android:paddingVertical="10dp" /> </RelativeLayout> </LinearLayout> </ScrollView> </LinearLayout> </layout> app/src/main/res/layout/activity_hundred_wish.xml
New file @@ -0,0 +1,143 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.HundredWishActivityViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" > <FrameLayout android:layout_width="24dp" android:layout_height="24dp" android:layout_marginHorizontal="16dp" android:layout_gravity="center_vertical|end" > <ImageView android:id="@+id/iv_operate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/ic_operate" /> </FrameLayout> <LinearLayout android:id="@+id/layout_default" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" > <TextView android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="百年心愿(仅供参考)" android:layout_weight="1" android:textColor="@color/white" android:textSize="@dimen/sp_20" /> <ImageView android:id="@+id/iv_search_default" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:background="@drawable/ic_search" /> </LinearLayout> <LinearLayout android:id="@+id/layout_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginVertical="4dp" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" android:background="@color/white" android:paddingHorizontal="5dp" android:visibility="gone" > <ImageView android:id="@+id/iv_search" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_gray" /> <EditText android:id="@+id/et_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="5dp" android:textSize="14sp" android:textColor="#61000000" android:background="@null" android:imeOptions="actionSearch" android:text="" android:singleLine="true" android:hint="在“家大事记内搜索”" /> <ImageView android:id="@+id/iv_search_type" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_by" /> </LinearLayout> </com.android.app_base.widget.ExtendTitleBar> <LinearLayout android:id="@+id/layout_data_null" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/img_data_null" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:text="暂时还没有数据哦~\n点击”+”立即创建" android:textSize="14sp" android:textColor="#73000000" /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_hundred_wish_detail.xml
New file @@ -0,0 +1,208 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.HundredWishDetailActivityViewModel" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_normal_background" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:layout_width="match_parent" android:layout_height="wrap_content" app:title="@{viewModel.beanLiveData.title+`(仅供查看)`}" app:titleGravity="left" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingHorizontal="20dp" android:paddingBottom="20dp" > <TextView android:layout_width="wrap_content" android:layout_marginTop="@dimen/dp_10" android:layout_height="@dimen/dp_20" android:text="理想标题/百年愿望" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:autofillHints="creditCardNumber" android:textColorHint="#6b000000" android:textColor="#DE000000" android:textSize="16sp" android:text="@={viewModel.beanLiveData.title}" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="时间" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.createTime}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="始于何因" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:text="@={viewModel.beanLiveData.reason}" android:textColor="#DE000000" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="受惠人" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.beneficiary}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="继承人" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.heir}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="实现难度" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.difficulty}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="是否依旧有效" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@{viewModel.beanLiveData.isEffective==1?`是`:`否`}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="备注" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.remark}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="电子文件" android:textColor="#767375" android:textSize="12sp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_6b0000_stroke" > <com.android.app_base.widget.WrapRecyclerView android:id="@+id/rv_image" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginTop="2sp" android:paddingStart="10dp" android:paddingEnd="5dp" android:paddingVertical="10dp" /> </RelativeLayout> </LinearLayout> </ScrollView> </LinearLayout> </layout> app/src/main/res/layout/activity_income_and_expenses.xml
New file @@ -0,0 +1,144 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.IncomeAndExpensesActivityViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" > <FrameLayout android:layout_width="24dp" android:layout_height="24dp" android:layout_marginHorizontal="16dp" android:layout_gravity="center_vertical|end" > <ImageView android:id="@+id/iv_operate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/ic_operate" /> </FrameLayout> <LinearLayout android:id="@+id/layout_default" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" > <TextView android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="保洁收纳" android:layout_weight="1" android:textColor="@color/white" android:textSize="@dimen/sp_20" /> <ImageView android:id="@+id/iv_search_default" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:background="@drawable/ic_search" /> </LinearLayout> <LinearLayout android:id="@+id/layout_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginVertical="4dp" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" android:background="@color/white" android:paddingHorizontal="5dp" android:visibility="gone" > <ImageView android:id="@+id/iv_search" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_gray" /> <EditText android:id="@+id/et_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="5dp" android:textSize="14sp" android:textColor="#61000000" android:background="@null" android:imeOptions="actionSearch" android:text="" android:singleLine="true" android:hint="在“家大事记内搜索”" /> <ImageView android:id="@+id/iv_search_type" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_by" /> </LinearLayout> </com.android.app_base.widget.ExtendTitleBar> <LinearLayout android:id="@+id/layout_data_null" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/img_data_null" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:text="暂时还没有数据哦~\n点击”+”立即创建" android:textSize="14sp" android:textColor="#73000000" /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" tools:layout_editor_absoluteX="-81dp" tools:listitem="@layout/item_family_assets" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_income_and_expenses_detail.xml
New file @@ -0,0 +1,208 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.IncomeAndExpensesDetailActivityViewModel" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_normal_background" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:layout_width="match_parent" android:layout_height="wrap_content" app:title="家庭收支台账" app:titleGravity="left" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingHorizontal="20dp" android:paddingBottom="20dp" > <TextView android:layout_width="wrap_content" android:layout_marginTop="@dimen/dp_10" android:layout_height="@dimen/dp_20" android:text="基金/台账" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:autofillHints="creditCardNumber" android:textColorHint="#6b000000" android:textColor="#DE000000" android:textSize="16sp" android:text="@{viewModel.beanLiveData.type==0?`基金`:`台账`}" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="时间" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.createTime}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="收入/支出" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:text="@{viewModel.beanLiveData.price}" android:textColor="#DE000000" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="用途" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.useFor}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="使用人" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.usePeople}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="现金/自动划扣" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@{viewModel.beanLiveData.kind==0?`现金`:`自动划扣`}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="余额" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.balance}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="备注" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.remark}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="电子文件" android:textColor="#767375" android:textSize="12sp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_6b0000_stroke" > <com.android.app_base.widget.WrapRecyclerView android:id="@+id/rv_image" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginTop="2sp" android:paddingStart="10dp" android:paddingEnd="5dp" android:paddingVertical="10dp" /> </RelativeLayout> </LinearLayout> </ScrollView> </LinearLayout> </layout> app/src/main/res/layout/activity_little_doctor.xml
New file @@ -0,0 +1,142 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" > <FrameLayout android:layout_width="24dp" android:layout_height="24dp" android:layout_marginHorizontal="16dp" android:layout_gravity="center_vertical|end" > <ImageView android:id="@+id/iv_operate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/ic_operate" /> </FrameLayout> <LinearLayout android:id="@+id/layout_default" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" > <TextView android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="小医生" android:layout_weight="1" android:textColor="@color/white" android:textSize="@dimen/sp_20" /> <ImageView android:id="@+id/iv_search_default" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:background="@drawable/ic_search" /> </LinearLayout> <LinearLayout android:id="@+id/layout_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginVertical="4dp" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" android:background="@color/white" android:paddingHorizontal="5dp" android:visibility="gone" > <ImageView android:id="@+id/iv_search" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_gray" /> <EditText android:id="@+id/et_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="5dp" android:textSize="14sp" android:textColor="#61000000" android:background="@null" android:imeOptions="actionSearch" android:text="" android:singleLine="true" android:hint="在“家大事记内搜索”" /> <ImageView android:id="@+id/iv_search_type" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_by" /> </LinearLayout> </com.android.app_base.widget.ExtendTitleBar> <LinearLayout android:id="@+id/layout_data_null" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/img_data_null" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:text="暂时还没有数据哦~\n点击”+”立即创建" android:textSize="14sp" android:textColor="#73000000" /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" tools:layout_editor_absoluteX="-81dp" tools:listitem="@layout/item_family_assets" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_little_doctor_detail.xml
New file @@ -0,0 +1,191 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.LittleDoctorDetailActivityViewModel" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_normal_background" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:layout_width="match_parent" android:layout_height="wrap_content" app:title="小医生" app:titleGravity="left" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingHorizontal="20dp" android:paddingBottom="20dp" > <TextView android:layout_width="wrap_content" android:layout_marginTop="@dimen/dp_10" android:layout_height="@dimen/dp_20" android:text="症状" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:autofillHints="creditCardNumber" android:textColorHint="#6b000000" android:textColor="#DE000000" android:textSize="16sp" android:text="@={viewModel.beanLiveData.symptom}" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="适用人" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.suitable}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="持续时间" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:text="@={viewModel.beanLiveData.duration}" android:textColor="#DE000000" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="中医处方" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.cmedical}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="西医处方" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.wmedical}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="功效" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.effect}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="备注" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.remark}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="电子文件" android:textColor="#767375" android:textSize="12sp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_6b0000_stroke" > <com.android.app_base.widget.WrapRecyclerView android:id="@+id/rv_image" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginTop="2sp" android:paddingStart="10dp" android:paddingEnd="5dp" android:paddingVertical="10dp" /> </RelativeLayout> </LinearLayout> </ScrollView> </LinearLayout> </layout> app/src/main/res/layout/activity_marriage.xml
New file @@ -0,0 +1,1050 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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" > <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.MarriageActivityViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_normal_background" > <com.android.app_base.widget.ExtendTitleBar android:id="@+id/extendTitleBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:elevation="10dp" app:layout_constraintTop_toTopOf="parent" app:title="个人婚姻(仅供查看)" app:titleGravity="left" /> <ScrollView android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/extendTitleBar" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:id="@+id/ll_basic_information" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginHorizontal="20dp" android:layout_marginVertical="16dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="基本信息" android:textColor="@color/black" android:textSize="20sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="姓名" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="张三" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="性别" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="出生日期" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2010-01-01" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="民族" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="汉族" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="身份证号" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="445222200110233318" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" android:ellipsize="marquee" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="联系电话" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="17818824255" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="婚姻状况" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="已婚" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" android:drawableStart="@drawable/ic_radio_button" android:drawablePadding="8dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="结婚时间" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2020-10" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="户籍地址" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="广东省广州市" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > </LinearLayout> </LinearLayout> </LinearLayout> <androidx.cardview.widget.CardView android:id="@+id/card_spouse" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginHorizontal="14dp" app:cardCornerRadius="10dp" app:cardElevation="3dp" tools:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginHorizontal="6dp" > <LinearLayout android:id="@+id/layout_title_spouse" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center_vertical" > <TextView android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="配偶情况" android:textColor="@color/black" android:textSize="20sp" /> <ImageView android:id="@+id/iv_spouse_fold" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@{viewModel.isSpouseExpendedLiveData?@drawable/ic_unfold:@drawable/ic_fold}" /> </LinearLayout> <LinearLayout android:id="@+id/layout_content_spouse" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="姓名" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="张三" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="婚姻状况" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="已婚" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" android:drawableStart="@drawable/ic_radio_button" android:drawablePadding="8dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="出生日期" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="2010-01-01" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="户籍地址" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="广东省广州市" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginBottom="10dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="工作单位" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="张氏公司" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" android:ellipsize="marquee" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:id="@+id/card_predecessor" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginHorizontal="14dp" android:layout_marginTop="10dp" app:cardCornerRadius="10dp" app:cardElevation="2dp" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginHorizontal="6dp" > <LinearLayout android:id="@+id/layout_title_predecessor" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center_vertical" > <TextView android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="前任" android:textColor="@color/black" android:textSize="20sp" /> <ImageView android:id="@+id/iv_predecessor_fold" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@{viewModel.isPredecessorExpendedLiveData?@drawable/ic_unfold:@drawable/ic_fold}" /> </LinearLayout> <LinearLayout android:id="@+id/layout_content_predecessor" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="姓名" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="张三" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="婚姻状况" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="离婚" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" android:drawableStart="@drawable/ic_radio_button" android:drawablePadding="8dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="出生日期" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="2010-01-01" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="户籍地址" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="广东省广州市" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginBottom="10dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="工作单位" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="张氏公司" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" android:ellipsize="marquee" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:id="@+id/card_procreate" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginHorizontal="14dp" android:layout_marginTop="10dp" app:cardCornerRadius="10dp" app:cardElevation="2dp" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginHorizontal="6dp" > <LinearLayout android:id="@+id/layout_title_procreate" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center_vertical" > <TextView android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:text="生育情况" android:textColor="@color/black" android:textSize="20sp" /> <ImageView android:id="@+id/iv_procreate_fold" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@{viewModel.isProcreateExpendedLiveData?@drawable/ic_unfold:@drawable/ic_fold}" /> </LinearLayout> <LinearLayout android:id="@+id/layout_content_procreate" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="生育状况" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="已生育" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" android:drawableStart="@drawable/ic_radio_button" android:drawablePadding="8dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="领取《计划生育服务手册》" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="是" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" android:drawableStart="@drawable/ic_radio_button" android:drawablePadding="8dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginBottom="10dp" > <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="领取《独生子女证》" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="是" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" android:drawableStart="@drawable/ic_radio_button" android:drawablePadding="8dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" android:layout_marginStart="40dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="领取时间" android:textColor="@color/black" android:textSize="12sp" android:alpha="0.54" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:text="2023-01-01" android:textColor="#DE000000" android:textSize="14sp" android:layout_marginTop="5dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#6B000000" android:layout_marginTop="8dp" /> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </ScrollView> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_pet.xml
New file @@ -0,0 +1,144 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.PetActivityViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" > <FrameLayout android:layout_width="24dp" android:layout_height="24dp" android:layout_marginHorizontal="16dp" android:layout_gravity="center_vertical|end" > <ImageView android:id="@+id/iv_operate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/ic_operate" /> </FrameLayout> <LinearLayout android:id="@+id/layout_default" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" > <TextView android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="魅宠" android:layout_weight="1" android:textColor="@color/white" android:textSize="@dimen/sp_20" /> <ImageView android:id="@+id/iv_search_default" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:background="@drawable/ic_search" /> </LinearLayout> <LinearLayout android:id="@+id/layout_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginVertical="4dp" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" android:background="@color/white" android:paddingHorizontal="5dp" android:visibility="gone" > <ImageView android:id="@+id/iv_search" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_gray" /> <EditText android:id="@+id/et_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="5dp" android:textSize="14sp" android:textColor="#61000000" android:background="@null" android:imeOptions="actionSearch" android:text="" android:singleLine="true" android:hint="在“家大事记内搜索”" /> <ImageView android:id="@+id/iv_search_type" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_by" /> </LinearLayout> </com.android.app_base.widget.ExtendTitleBar> <LinearLayout android:id="@+id/layout_data_null" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/img_data_null" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:text="暂时还没有数据哦~\n点击”+”立即创建" android:textSize="14sp" android:textColor="#73000000" /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" tools:layout_editor_absoluteX="-81dp" tools:listitem="@layout/item_family_assets" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_property.xml
New file @@ -0,0 +1,143 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.PropertyActivityViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" > <FrameLayout android:layout_width="24dp" android:layout_height="24dp" android:layout_marginHorizontal="16dp" android:layout_gravity="center_vertical|end" > <ImageView android:id="@+id/iv_operate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/ic_operate" /> </FrameLayout> <LinearLayout android:id="@+id/layout_default" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" > <TextView android:id="@+id/tv_title" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="保洁收纳" android:layout_weight="1" android:textColor="@color/white" android:textSize="@dimen/sp_20" /> <ImageView android:id="@+id/iv_search_default" android:layout_width="@dimen/dp_24" android:layout_height="@dimen/dp_24" android:background="@drawable/ic_search" /> </LinearLayout> <LinearLayout android:id="@+id/layout_search" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginVertical="4dp" android:layout_marginHorizontal="56dp" android:gravity="center_vertical" android:background="@color/white" android:paddingHorizontal="5dp" android:visibility="gone" > <ImageView android:id="@+id/iv_search" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_gray" /> <EditText android:id="@+id/et_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginStart="5dp" android:textSize="14sp" android:textColor="#61000000" android:background="@null" android:imeOptions="actionSearch" android:text="" android:singleLine="true" android:hint="在“家大事记内搜索”" /> <ImageView android:id="@+id/iv_search_type" android:layout_width="24dp" android:layout_height="24dp" android:background="@drawable/ic_search_by" /> </LinearLayout> </com.android.app_base.widget.ExtendTitleBar> <LinearLayout android:id="@+id/layout_data_null" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/img_data_null" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="18dp" android:text="暂时还没有数据哦~\n点击”+”立即创建" android:textSize="14sp" android:textColor="#73000000" /> </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:background="@color/color_normal_background" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/titleBar" app:layout_constraintVertical_bias="1.0" tools:itemCount="20" /> </androidx.constraintlayout.widget.ConstraintLayout> </layout> app/src/main/res/layout/activity_property_detail.xml
New file @@ -0,0 +1,225 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="viewModel" type="com.application.zhangshi_app_android.ui.function.PropertyDetailActivityViewModel" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_normal_background" android:orientation="vertical"> <com.android.app_base.widget.ExtendTitleBar android:layout_width="match_parent" android:layout_height="wrap_content" app:title="@{viewModel.beanLiveData.name+`(仅供查看)`}" app:titleGravity="left" /> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingHorizontal="20dp" android:paddingBottom="20dp" > <TextView android:layout_width="wrap_content" android:layout_marginTop="@dimen/dp_10" android:layout_height="@dimen/dp_20" android:text="时间" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text" android:autofillHints="creditCardNumber" android:textColorHint="#6b000000" android:textColor="#DE000000" android:textSize="16sp" android:text="@={viewModel.beanLiveData.createTime}" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="财产类别" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.type}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="收支名称" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:text="@={viewModel.beanLiveData.name}" android:textColor="#DE000000" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="价值(金额)" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.price}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="期限" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.term}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="更变或注销" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.status}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="产权" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.propertyRight}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="存放位置" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.location}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="备注" android:textColor="#767375" android:textSize="12sp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:inputType="text" android:textColorHint="#6b000000" android:textColor="#DE000000" android:text="@={viewModel.beanLiveData.remark}" android:textSize="16sp" /> <TextView android:layout_width="wrap_content" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:text="电子文件" android:textColor="#767375" android:textSize="12sp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/shape_6b0000_stroke" > <com.android.app_base.widget.WrapRecyclerView android:id="@+id/rv_image" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:layout_marginTop="2sp" android:paddingStart="10dp" android:paddingEnd="5dp" android:paddingVertical="10dp" /> </RelativeLayout> </LinearLayout> </ScrollView> </LinearLayout> </layout> app/src/main/res/layout/fragment_home.xml
@@ -9,9 +9,60 @@ type="com.application.zhangshi_app_android.ui.home.HomeFragmentViewModel" /> </data> <androidx.constraintlayout.widget.ConstraintLayout <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > </androidx.constraintlayout.widget.ConstraintLayout> <com.android.app_base.widget.ExtendTitleBar android:id="@+id/titleBar" android:layout_width="match_parent" android:layout_height="wrap_content" app:title="家根网(仅供查看)" app:titleGravity="left" /> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" > <com.application.zhangshi_app_android.widget.TreeView android:id="@+id/treeView" android:layout_width="match_parent" android:layout_height="match_parent" /> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" android:id="@+id/layout_home_root_net" > <ImageView android:id="@+id/iv_treeView" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintDimensionRatio="360:417" android:background="@drawable/bg_home_root_net" app:layout_constraintBottom_toBottomOf="parent" /> <ImageView android:layout_width="match_parent" android:layout_height="0dp" android:background="@drawable/bg_home_root_net_grass" app:layout_constraintBottom_toBottomOf="@id/iv_treeView" app:layout_constraintDimensionRatio="350:217" android:layout_marginBottom="-56dp" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_home_member" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" /> </androidx.constraintlayout.widget.ConstraintLayout> </LinearLayout> </layout> app/src/main/res/layout/item_certificate_of_honor.xml
New file @@ -0,0 +1,268 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.CertificateOfHonorBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="40dp" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" tools:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="@{bean.name}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="创立张氏公司" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.effectiveTime}" android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="20dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2019-01-12" /> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="@dimen/dp_24" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="类别:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.type}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="证号/专业:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.certificateNumber}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="级别:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.level}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="有效时间:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.effectiveTime}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获得时间:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.getTime}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="存放位置:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.location}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="备注:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.remark}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/dp_6" android:text="电子文件:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_15" > <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_image" android:layout_width="match_parent" android:layout_height="wrap_content" tools:listitem="@layout/item_image" tools:itemCount="3" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/item_clean_storage.xml
New file @@ -0,0 +1,235 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.CleanStorageBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="40dp" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="@{bean.type}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="房产证" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="@{bean.suitablePeople}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.45" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="张三" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.category}" android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="20dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2019-01-12" /> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="@dimen/dp_24" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="序号:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{String.valueOf(bean.id)}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="保洁方法:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.cleanMethod}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="材料存放地:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.materialStorageLocation}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="放置地点:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.placementLocation}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="备注:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.remark}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/dp_6" android:text="电子文件:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_15" > <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_image" android:layout_width="match_parent" android:layout_height="wrap_content" tools:listitem="@layout/item_image" tools:itemCount="3" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/item_family_assets.xml
@@ -26,49 +26,58 @@ android:layout_height="wrap_content" android:orientation="vertical" > <RelativeLayout <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical" > android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.type}" android:textStyle="bold" tools:text="房产证" /> android:textColor="@color/black" android:textSize="@dimen/sp_16" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="房产证" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_centerHorizontal="true" android:layout_marginStart="24dp" android:gravity="center" android:text="@{bean.holder}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.45" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="张三" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.createTime}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" tools:text="2019-01-12" /> android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="20dp" </RelativeLayout> app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2019-01-12" /> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" @@ -88,7 +97,7 @@ android:text="序号:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" @@ -96,7 +105,7 @@ android:text="@{String.valueOf(bean.id)}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout @@ -111,7 +120,7 @@ android:text="证件卡号:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" @@ -119,7 +128,7 @@ android:text="@{bean.title}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout @@ -134,7 +143,7 @@ android:text="开户行:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" @@ -142,7 +151,7 @@ android:text="@{bean.location}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout @@ -157,7 +166,7 @@ android:text="存放地点:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" @@ -165,7 +174,7 @@ android:text="@{bean.address}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> @@ -181,7 +190,7 @@ android:text="备注:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" @@ -189,7 +198,7 @@ android:text="@{bean.remark}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <TextView @@ -199,7 +208,7 @@ android:text="电子文件:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" app/src/main/res/layout/item_family_memorabilia.xml
@@ -16,14 +16,14 @@ <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_height="40dp" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" > <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:layout_height="wrap_content" android:orientation="vertical" > <RelativeLayout @@ -50,7 +50,6 @@ android:textColor="@color/black" android:text="@{bean.title}" android:layout_weight="1" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" @@ -58,7 +57,6 @@ android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.createTime}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" @@ -83,7 +81,7 @@ android:text="序号:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" @@ -91,7 +89,7 @@ android:text="@{String.valueOf(bean.id)}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout @@ -106,7 +104,7 @@ android:text="人物:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" @@ -114,7 +112,7 @@ android:text="@{bean.people}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout @@ -129,7 +127,7 @@ android:text="备注:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" @@ -137,7 +135,7 @@ android:text="@{bean.remark}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <TextView @@ -147,7 +145,7 @@ android:text="电子文件:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" @@ -187,7 +185,7 @@ android:text="修改" android:textColor="@color/black" android:textSize="@dimen/sp_14" android:textStyle="bold" android:layout_marginStart="@dimen/dp_4" /> </LinearLayout> @@ -210,7 +208,7 @@ android:text="删除" android:textColor="#FFE86F72" android:textSize="@dimen/sp_14" android:textStyle="bold" android:layout_marginStart="@dimen/dp_4" /> </LinearLayout> app/src/main/res/layout/item_home_devices.xml
@@ -26,50 +26,59 @@ android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.name}" android:textStyle="bold" tools:text="电视" /> android:gravity="center_vertical"> <TextView android:layout_width="0dp" android:layout_weight="1" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="@{bean.name}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="电视" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginStart="24dp" android:text="@{bean.address}" android:gravity="center" android:text="@{bean.location}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" android:gravity="center" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.45" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="张三" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:text="@{bean.createDate}" android:textColor="@color/black" android:text="@{bean.createTime}" android:textSize="16sp" android:layout_marginEnd="20dp" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" tools:text="2019-01-12" /> app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2019-01-12" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" @@ -117,7 +126,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.people}" android:text="@{bean.buyer}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" app/src/main/res/layout/item_home_member_list.xml
New file @@ -0,0 +1,234 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.HomeMemberBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="40dp" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" app:cardElevation="0dp" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="@{bean.generation}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="第一代" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="@{bean.name}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.55" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="张三" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.gender}" android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="20dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="男" /> </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingStart="@dimen/dp_24" android:paddingVertical="13dp" > <androidx.constraintlayout.utils.widget.ImageFilterView android:id="@+id/imageFilterView2" android:layout_width="100dp" android:layout_height="100dp" android:background="@color/teal_200" app:imageUrl="@{bean.url}" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:round="20dp" /> <LinearLayout android:id="@+id/linearLayout4" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/imageFilterView2" app:layout_constraintTop_toTopOf="@+id/imageFilterView2" app:layout_constraintBottom_toTopOf="@id/linearLayout5" app:layout_constraintVertical_chainStyle="spread_inside" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="出生日期 :" android:textColor="#FF000000" android:textSize="12sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.birthday}" android:textColor="#FF000000" android:textSize="12sp" tools:text="2021-01-01" /> </LinearLayout> <LinearLayout android:id="@+id/linearLayout5" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="@+id/linearLayout4" app:layout_constraintTop_toBottomOf="@+id/linearLayout4" app:layout_constraintBottom_toTopOf="@id/linearLayout6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="去世时间 :" android:textColor="#FF000000" android:textSize="12sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.deathDay}" android:textColor="#FF000000" android:textSize="12sp" tools:text="2021-01-01" /> </LinearLayout> <LinearLayout android:id="@+id/linearLayout6" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="@+id/linearLayout4" app:layout_constraintTop_toBottomOf="@+id/linearLayout5" app:layout_constraintBottom_toTopOf="@id/linearLayout7" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="手机号 : " android:textColor="#FF000000" android:textSize="12sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.phone}" android:textColor="#FF000000" android:textSize="12sp" tools:text="12345678901" /> </LinearLayout> <LinearLayout android:id="@+id/linearLayout7" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="@+id/linearLayout4" app:layout_constraintTop_toBottomOf="@+id/linearLayout6" app:layout_constraintBottom_toTopOf="@id/linearLayout8" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="所在单位 : " android:textColor="#FF000000" android:textSize="12sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.company}" android:textColor="#FF000000" android:textSize="12sp" tools:text="张氏公司" /> </LinearLayout> <LinearLayout android:id="@+id/linearLayout8" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="@+id/imageFilterView2" app:layout_constraintStart_toStartOf="@+id/linearLayout4" app:layout_constraintTop_toBottomOf="@+id/linearLayout7"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="配偶 : " android:textColor="#FF000000" android:textSize="12sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.spouse}" android:textColor="#FF000000" android:textSize="12sp" tools:text="张三" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/item_honor_collection.xml
New file @@ -0,0 +1,236 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.HonorCollectionBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="40dp" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="@{bean.type}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="房产证" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="@{bean.owner}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.45" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="张三" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.getTime}" android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="20dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2019-01-12" /> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="@dimen/dp_24" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="名称:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.name}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="来源:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.source}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="价值:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.price}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="存放位置:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.location}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="备注:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.remark}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/dp_6" android:text="电子文件:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_15" > <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_image" android:layout_width="match_parent" android:layout_height="wrap_content" tools:listitem="@layout/item_image" tools:itemCount="3" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/item_hundred_wish.xml
New file @@ -0,0 +1,245 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.HundredWishBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="40dp" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" tools:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="@{bean.title}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="创立张氏公司" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.createTime}" android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="20dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2019-01-12" /> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="@dimen/dp_24" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="始于何因:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.reason}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="受惠人:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.beneficiary}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="继承人:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.heir}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="实现难度:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.difficulty}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="是否依旧有效:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.isEffective==1?`是`:`否`}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="备注:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.remark}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/dp_6" android:text="电子文件:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_15" > <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_image" android:layout_width="match_parent" android:layout_height="wrap_content" tools:listitem="@layout/item_image" tools:itemCount="3" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/item_image_footer.xml
@@ -1,18 +1,26 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/dp_85" android:layout_height="@dimen/dp_85" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" android:background="@drawable/shape_73fab4cd_solid" android:layout_marginTop="8dp" android:layout_marginStart="2dp" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_import_add" /> <FrameLayout android:layout_width="85dp" android:layout_height="85dp" android:layout_marginTop="7.5dp" android:layout_marginBottom="7.5dp" android:layout_marginEnd="7.5dp" android:background="@drawable/shape_73fab4cd_solid" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/ic_import_add" android:layout_gravity="center" /> </FrameLayout> </LinearLayout> app/src/main/res/layout/item_income_and_expenses.xml
New file @@ -0,0 +1,257 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.IncomeAndExpensesBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="40dp" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="@{bean.type==0?`基金`:`台账`}" android:textColor="@color/black" android:textSize="@dimen/sp_16" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="房产证" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="@{bean.price}" android:textColor="@color/black" android:textSize="@dimen/sp_16" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="张三" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.usePeople}" android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="20dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2019-01-12" /> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="@dimen/dp_24" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="序号:" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{String.valueOf(bean.id)}" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="时间:" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.createTime}" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用途:" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.useFor}" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="现金/自动划扣:" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.kind==0?`现金`:`自动划扣`}" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="余额:" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.balance}" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="备注:" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.remark}" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/dp_6" android:text="电子文件:" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_15" > <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_image" android:layout_width="match_parent" android:layout_height="wrap_content" tools:listitem="@layout/item_image" tools:itemCount="3" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/item_little_doctor.xml
New file @@ -0,0 +1,264 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.LittleDoctorBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="40dp" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="@{bean.type}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="房产证" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="@{bean.suitable}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.45" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="张三" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.duration}" android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="20dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2019-01-12" /> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="@dimen/dp_24" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="序号:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{String.valueOf(bean.id)}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="类型:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.type}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginBottom="@dimen/dp_6" android:layout_marginTop="5dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="中医处方:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_marginTop="3dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{bean.cmedical}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginBottom="@dimen/dp_6" android:layout_marginTop="5dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="西医处方:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_marginTop="3dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@{bean.wmedical}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" android:layout_marginTop="5dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="功效:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.effect}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="备注:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.remark}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/dp_6" android:text="电子文件:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_15" > <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_image" android:layout_width="match_parent" android:layout_height="wrap_content" tools:listitem="@layout/item_image" tools:itemCount="3" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/item_pet.xml
New file @@ -0,0 +1,175 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.PetBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="40dp" android:text="@{bean.name}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="小黄" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="@{bean.type}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="金毛" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.sex == 1?`雄性` : `雌性`}" android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="40dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="雄性" /> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="@dimen/dp_24" > <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#FFFFFFFF" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.name+`的基本信息`}" android:textColor="@color/black" android:textSize="14sp" tools:text="小黄的基本信息" android:layout_marginTop="8dp" android:layout_marginStart="16dp" /> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:layout_marginTop="8dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:text="@{bean.color}" android:textColor="#80000000" android:textSize="10sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="金黄色" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="@{bean.birth.substring(0,10)}" android:textColor="#80000000" android:textSize="10sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2010-03-01" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.dialect}" android:textColor="#80000000" android:textSize="10sp" android:layout_marginEnd="40dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="雄性" /> </androidx.constraintlayout.widget.ConstraintLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#FFFFFFFF" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.name+`的基本信息`}" android:textColor="@color/black" android:textSize="14sp" tools:text="小黄的基本信息" android:layout_marginTop="8dp" android:layout_marginStart="16dp" /> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/item_property.xml
New file @@ -0,0 +1,283 @@ <?xml version="1.0" encoding="utf-8"?> <layout 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"> <data> <variable name="bean" type="com.application.zhangshi_app_android.bean.PropertyBean" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <androidx.cardview.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="40dp" android:layout_margin="@dimen/dp_2" app:cardCornerRadius="@dimen/dp_10" app:cardBackgroundColor="@color/color_card_pink" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/layout_title" android:layout_width="match_parent" android:layout_height="@dimen/dp_40" android:gravity="center_vertical"> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:text="@{bean.type}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="房产证" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="@{bean.propertyRight}" android:textColor="@color/black" android:textSize="@dimen/sp_16" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.45" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="张三" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.price}" android:textColor="@color/black" android:textSize="16sp" android:layout_marginEnd="20dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="2019-01-12" /> </androidx.constraintlayout.widget.ConstraintLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="@dimen/dp_24" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="日期:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.createTime}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="收支名称:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.name}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="期限:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.term}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="变更或注销:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.status}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="存放位置:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.location}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="是否注销:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.status}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_6" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="备注:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.remark}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/dp_6" android:text="电子文件:" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginBottom="@dimen/dp_15" > <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_image" android:layout_width="match_parent" android:layout_height="wrap_content" tools:listitem="@layout/item_image" tools:itemCount="3" /> </LinearLayout> </LinearLayout> </LinearLayout> </androidx.cardview.widget.CardView> </LinearLayout> </layout> app/src/main/res/layout/layout_tree_view.xml
New file @@ -0,0 +1,36 @@ <?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="match_parent" > <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="0dp" android:src="@drawable/bg_home_root_net_detail" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintDimensionRatio="676:505" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <androidx.constraintlayout.utils.widget.ImageFilterView android:id="@+id/imageFilterView" android:layout_width="0dp" android:layout_height="0dp" android:background="@color/design_default_color_background" app:roundPercent="1" app:layout_constraintDimensionRatio="1" app:layout_constraintWidth_percent="0.053" app:layout_constraintHorizontal_bias="0.37" app:layout_constraintVertical_bias="0.334" app:layout_constraintEnd_toEndOf="@id/imageView" app:layout_constraintStart_toStartOf="@id/imageView" app:layout_constraintBottom_toBottomOf="@id/imageView" app:layout_constraintTop_toTopOf="@id/imageView" /> </androidx.constraintlayout.widget.ConstraintLayout> app/src/main/res/layout/pop_basic_information.xml
New file @@ -0,0 +1,1546 @@ <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/transparent" xmlns:app="http://schemas.android.com/apk/res-auto"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@color/transparent" > <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" app:cardCornerRadius="6dp" app:cardBackgroundColor="#F6FFFFFF" app:cardElevation="10dp" android:layout_marginHorizontal="10dp" android:layout_marginVertical="15dp" > <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginEnd="7dp" android:layout_marginStart="10dp" android:layout_marginVertical="24dp" > <androidx.constraintlayout.utils.widget.ImageFilterView android:id="@+id/iv_photo" android:layout_width="105dp" android:layout_height="105dp" android:background="@color/teal_200" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:round="10dp" /> <TextView android:id="@+id/tv_basic_personal_information" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:text="个人基本信息" android:textColor="#99000000" android:textSize="10sp" app:layout_constraintStart_toEndOf="@+id/iv_photo" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/layout_personal_1" app:layout_constraintVertical_chainStyle="spread_inside" /> <LinearLayout android:id="@+id/layout_personal_1" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintHorizontal_chainStyle="spread_inside" app:layout_constraintBottom_toTopOf="@id/layout_personal_2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="@+id/tv_basic_personal_information" app:layout_constraintTop_toBottomOf="@id/tv_basic_personal_information"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="姓名" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="姓名" android:textColor="#FF000000" android:textSize="12sp" android:layout_marginStart="12dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="性别" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="女" android:textColor="#FF000000" android:layout_marginStart="12dp" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_personal_2" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="@+id/tv_basic_personal_information" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_personal_1" app:layout_constraintBottom_toTopOf="@id/layout_personal_3" > <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="身份" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="第一代" android:textColor="#FF000000" android:textSize="12sp" android:layout_marginStart="12dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="年龄" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="18" android:textColor="#FF000000" android:layout_marginStart="12dp" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_personal_3" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="@+id/iv_photo" app:layout_constraintStart_toStartOf="@+id/tv_basic_personal_information" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_personal_2"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="曾用名" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="张四" android:textColor="#FF000000" android:textSize="12sp" android:layout_marginStart="12dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="民族" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="汉族" android:textColor="#FF000000" android:layout_marginStart="12dp" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_personal_4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="24dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/iv_photo"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="婚姻状况" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="已婚" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="配偶" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="张四" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_personal_5" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_personal_4"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="户籍地址" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="广东省广州市" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="联系方式" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="12345678901" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_personal_6" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_personal_5"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="常住地址" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="广东省广州市" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="微信号" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="12345678901" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_personal_7" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_personal_6"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="政治面貌" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="共产党员" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="QQ号" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="12345678901" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_personal_7"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="所在单位" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="张氏公司" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_fffad1e0_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="职务" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="经理" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFFAD1E0" /> </FrameLayout> </LinearLayout> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" app:cardCornerRadius="6dp" app:cardBackgroundColor="#F6FFFFFF" app:cardElevation="10dp" android:layout_marginHorizontal="10dp" android:layout_marginVertical="15dp" > <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginStart="10dp" android:layout_marginEnd="7dp" android:layout_marginVertical="24dp" android:visibility="invisible" > <androidx.constraintlayout.utils.widget.ImageFilterView android:id="@+id/iv_spouse_photo" android:layout_width="105dp" android:layout_height="105dp" android:background="@color/teal_200" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_marginStart="10dp" app:round="10dp" /> <TextView android:id="@+id/tv_spouse_basic_information" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="配偶基本信息" android:textColor="#99000000" android:textSize="10sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toTopOf="@id/layout_spouse_1" app:layout_constraintVertical_chainStyle="spread_inside" /> <LinearLayout android:id="@+id/layout_spouse_1" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintHorizontal_chainStyle="spread_inside" app:layout_constraintBottom_toTopOf="@id/layout_spouse_2" app:layout_constraintEnd_toStartOf="@id/iv_spouse_photo" app:layout_constraintStart_toStartOf="@+id/tv_spouse_basic_information" app:layout_constraintTop_toBottomOf="@id/tv_spouse_basic_information" > <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="姓名" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="姓名" android:textColor="#FF000000" android:textSize="12sp" android:layout_marginStart="12dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="性别" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="女" android:textColor="#FF000000" android:layout_marginStart="12dp" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_spouse_2" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintStart_toStartOf="@+id/tv_spouse_basic_information" app:layout_constraintEnd_toStartOf="@id/iv_spouse_photo" app:layout_constraintTop_toBottomOf="@+id/layout_spouse_1" app:layout_constraintBottom_toTopOf="@id/layout_spouse_3" > <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="身份" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="第一代" android:textColor="#FF000000" android:textSize="12sp" android:layout_marginStart="12dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="年龄" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="18" android:textColor="#FF000000" android:layout_marginStart="12dp" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_spouse_3" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="@id/iv_spouse_photo" app:layout_constraintStart_toStartOf="@id/tv_spouse_basic_information" app:layout_constraintEnd_toStartOf="@id/iv_spouse_photo" app:layout_constraintTop_toBottomOf="@id/layout_spouse_2"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="曾用名" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="张四" android:textColor="#FF000000" android:textSize="12sp" android:layout_marginStart="12dp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="民族" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="汉族" android:textColor="#FF000000" android:layout_marginStart="12dp" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_spouse_4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="24dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/iv_spouse_photo"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="婚姻状况" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="已婚" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="配偶" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="张四" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_spouse_5" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_spouse_4"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="户籍地址" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="广东省广州市" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="联系方式" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="12345678901" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_spouse_6" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_spouse_5"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="常住地址" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="广东省广州市" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="微信号" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="12345678901" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/layout_spouse_7" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_spouse_6"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="政治面貌" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="共产党员" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="QQ号" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="12345678901" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/layout_spouse_7"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="所在单位" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="张氏公司" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginStart="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/shape_ffd8e6f5_10_10_0_10" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="职务" android:textColor="#FF000000" android:textSize="12sp" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="12dp" android:paddingHorizontal="6dp" android:paddingVertical="3dp" android:text="经理" android:textColor="#FF000000" android:textSize="12sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_gravity="bottom" android:background="#FFD8E6F5" /> </FrameLayout> </LinearLayout> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginStart="10dp" android:layout_marginEnd="7dp" android:layout_marginVertical="24dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="配偶基本信息" android:textColor="#99000000" android:textSize="10sp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_centerInParent="true" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/img_data_null" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="4dp" android:text="这里的信息空空如也~" android:textColor="#73000000" android:textSize="14sp" android:layout_gravity="center" android:layout_marginTop="10dp" /> </LinearLayout> </RelativeLayout> </androidx.cardview.widget.CardView> </LinearLayout> </ScrollView> app_base/build.gradle
@@ -56,17 +56,17 @@ api 'com.github.franmontiel:PersistentCookieJar:v1.0.1' // 标题栏框架:https://github.com/getActivity/TitleBar api 'com.github.getActivity:TitleBar:10.0' api 'com.github.getActivity:TitleBar:10.3' // 屏幕适配 api 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1' // 基础依赖包,必须要依赖 api 'com.geyifeng.immersionbar:immersionbar:3.2.2' // kotlin扩展(可选) // implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.2' // 沉浸式状态栏 api 'com.geyifeng.immersionbar:immersionbar:3.2.2' // 基础依赖包,必须要依赖 //implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.2' // kotlin扩展(可选) //图片相关 api 'com.github.bumptech.glide:glide:4.12.0' api 'com.github.bumptech.glide:glide:4.14.2' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' //内存泄露工具 debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.9.1' @@ -85,4 +85,14 @@ // 动画资源:https://lottiefiles.com、https://icons8.com/animated-icons api 'com.airbnb.android:lottie:4.1.0' // 上下拉刷新加载 api 'io.github.scwang90:refresh-layout-kernel:2.0.5' //核心必须依赖 api 'io.github.scwang90:refresh-header-classics:2.0.5' //经典刷新头 api 'io.github.scwang90:refresh-header-radar:2.0.5' //雷达刷新头 api 'io.github.scwang90:refresh-header-falsify:2.0.5' //虚拟刷新头 api 'io.github.scwang90:refresh-header-material:2.0.5' //谷歌刷新头 api 'io.github.scwang90:refresh-header-two-level:2.0.5' //二级刷新头 api 'io.github.scwang90:refresh-footer-ball:2.0.5' //球脉冲加载 api 'io.github.scwang90:refresh-footer-classics:2.0.5' //经典加载 } app_base/src/main/java/com/android/app_base/base/StateViewEnum.java
@@ -6,7 +6,8 @@ public enum StateViewEnum { DIALOG_LOADING,// dialog加载中 DIALOG_DISMISS,//dialog隐藏 DATA_LOADING, DATA_LOADING,// 数据加载中 DATA_FINISH,// 数据加载完成 DATA_ERROR,// 数据错误 DATA_NULL,// 没有数据 NET_ERROR,//网络错误 app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java
@@ -67,12 +67,12 @@ @Override public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { VDB itemBind = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),getLayoutId(),parent,false); return getViewHolder(itemBind); return getViewHolder(itemBind,viewType); } protected abstract int getLayoutId(); protected abstract void onBind(VH holder, int position); protected abstract VH getViewHolder(VDB itemBind); protected abstract VH getViewHolder(VDB itemBind,int viewType); @Override public void onBindViewHolder(@NonNull VH holder, int position) { @@ -212,8 +212,10 @@ if (mDataList == null || mDataList.size() == 0) { setData(data); } else { mDataList.addAll(data); notifyDataSetChanged(); //一个一个的添加 for (T datum : data) { addItem(datum); } } } /** app_base/src/main/java/com/android/app_base/base/view/BaseActivity.java
@@ -57,11 +57,6 @@ initView(); //页面事件监听的方法,用于ViewModel层转到View层的事件注册 initLiveDataObserve(); } @Override protected void onResume() { super.onResume(); //页面数据初始化方法 initData(); } @@ -152,6 +147,9 @@ case DATA_LOADING: dataLoading(); break; case DATA_FINISH: dataFinish(); break; case DATA_ERROR: dataError(); break; @@ -176,6 +174,9 @@ } }); } /** * 缺省页等状态视图的更新 * 有需求的,在子类选择重写 @@ -186,6 +187,8 @@ } protected void dataLoading() { } protected void dataFinish() { } protected void dataError() { } protected void dataNull() { app_base/src/main/java/com/android/app_base/http/OkHttpHelper.java
@@ -6,6 +6,7 @@ import com.android.app_base.BuildConfig; import com.android.app_base.base.BaseApplication; import com.android.app_base.http.interceptor.AuthInterceptor; import com.android.app_base.http.interceptor.CacheInterceptor; import com.android.app_base.http.interceptor.LogInterceptor; import com.blankj.utilcode.util.LogUtils; @@ -71,6 +72,7 @@ } }); clientBuilder.addInterceptor(new LogInterceptor());//拦截器添加公共参数 clientBuilder.addInterceptor(new AuthInterceptor());//拦截器token失效处理 //log日志拦截 if (BuildConfig.DEBUG) { clientBuilder.addInterceptor(new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() { app_base/src/main/java/com/android/app_base/http/interceptor/AuthInterceptor.java
New file @@ -0,0 +1,76 @@ package com.android.app_base.http.interceptor; import android.content.Context; import android.content.Intent; import android.text.TextUtils; import com.android.app_base.base.BaseConfig; import com.android.app_base.manager.AppManager; import com.android.app_base.manager.UserManager; import com.blankj.utilcode.util.ToastUtils; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; import okio.Buffer; import okio.BufferedSource; /** * @author Ljj * @date 2023.04.07. 19:53 * @desc */ public class AuthInterceptor implements Interceptor { private Context context; public AuthInterceptor() { } public AuthInterceptor(Context context) { this.context = context; } @Override public Response intercept(Chain chain) throws IOException { Request originalRequest = chain.request(); // Add Authorization header to the request Request.Builder builder = originalRequest.newBuilder(); //添加头部token String token = UserManager.getInstance().getToken(); if (!TextUtils.isEmpty(token)) { builder.addHeader("Authorization", token); } Request newRequest = builder.build(); Response response = chain.proceed(newRequest); // 处理API返回的数据状态码 try { BufferedSource source = response.body().source(); source.request(Long.MAX_VALUE); // Buffer the entire body. Buffer buffer = source.getBuffer(); Charset UTF8 = StandardCharsets.UTF_8; String string = buffer.clone().readString(UTF8); JSONObject responseObject = new JSONObject(string); int code = responseObject.getInt("code"); if (code == BaseConfig.TOKEN_INVALID ) { UserManager.getInstance().clearToken(); AppManager.getAppManager().finishAllActivity(); AppManager.getAppManager().startActivityForName(BaseConfig.LOGIN_ACTIVITY); throw new IOException("登录状态失效,请重新登录"); } } catch (JSONException e) { // 处理JSON解析异常 // ... } return response; } } app_base/src/main/java/com/android/app_base/http/interceptor/LogInterceptor.java
@@ -59,35 +59,9 @@ .build(); Request.Builder builder = request.newBuilder(); //添加头部token String token = UserManager.getInstance().getToken(); if (!TextUtils.isEmpty(token)) { builder.addHeader("Authorization", token); } Request newRequest = builder.url(modifiedUrl).build(); Response response = chain.proceed(newRequest); //解决response.body().string();只能打印一次 ResponseBody responseBody = response.body(); BufferedSource source = responseBody.source(); source.request(Long.MAX_VALUE); // Buffer the entire body. Buffer buffer = source.getBuffer(); Charset UTF8 = Charset.forName("UTF-8"); String string = buffer.clone().readString(UTF8); try { JSONObject jsonObject = new JSONObject(string); int code = jsonObject.getInt("code"); if (code == BaseConfig.TOKEN_INVALID ) { ToastUtils.showShort("登录状态失效,请重新登录"); UserManager.getInstance().clearToken(); AppManager.getAppManager().finishAllActivity(); AppManager.getAppManager().startActivityForName(BaseConfig.LOGIN_ACTIVITY); } } catch (JSONException e) { throw new RuntimeException(e); } return response; return chain.proceed(newRequest); } } app_base/src/main/java/com/android/app_base/utils/GlideUtil.java
@@ -25,8 +25,13 @@ * @param imageView ImageView 对象 */ public static void loadImage(String imageUrl, ImageView imageView) { RequestOptions options = new RequestOptions() .placeholder(com.luck.picture.lib.R.drawable.ps_image_placeholder) .error(com.luck.picture.lib.R.drawable.ps_image_placeholder) .diskCacheStrategy(DiskCacheStrategy.ALL).dontAnimate(); Glide.with(BaseApplication.getInstance()) .load(imageUrl) .apply(options) .into(imageView); } //圆形 app_base/src/main/java/com/android/app_base/widget/ExtendTitleBar.java
@@ -1,6 +1,7 @@ package com.android.app_base.widget; import android.content.Context; import android.graphics.Color; import android.util.AttributeSet; import android.view.Gravity; @@ -33,26 +34,31 @@ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); setTitleGravity(titleGravity); // System.out.println("onMeasure"); reSetTitleGravity(titleGravity); } @Override public TitleBar setTitleGravity(int gravity) { titleGravity = gravity; return super.setTitleGravity(gravity); } public void reSetTitleGravity(int gravity) { gravity = TitleBarSupport.getAbsoluteGravity(this, gravity); LayoutParams params = (LayoutParams) getTitleView().getLayoutParams(); params.gravity = gravity; // 如果标题的重心为左,那么左边就不能有内容 params.gravity = gravity|Gravity.CENTER_VERTICAL; if (gravity == Gravity.LEFT || gravity == Gravity.START){ params.setMargins(getLeftView().getMeasuredWidth(),0,0,0); } // 如果标题的重心为右,那么右边就不能有内容 if (gravity == Gravity.RIGHT && gravity == Gravity.END){ params.setMargins(0,0,0, getRightView().getMeasuredWidth()); } getTitleView().setLayoutParams(params); return this; } public void setTitle(String title){ setTitle((CharSequence) title); } } app_base/src/main/res/anim/pop_drop_hide.xml
New file @@ -0,0 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:duration="200" android:fromAlpha="1.0" android:toAlpha="0.0"/> <scale android:duration="200" android:fromXScale="1.0" android:fromYScale="1.0" android:interpolator="@android:anim/accelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toXScale="0" android:toYScale="0"/> </set> app_base/src/main/res/anim/pop_drop_show.xml
New file @@ -0,0 +1,16 @@ <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:duration="200" android:fromAlpha="0.0" android:toAlpha="1.0"/> <scale android:duration="200" android:fromXScale="0" android:fromYScale="0" android:interpolator="@android:anim/accelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toXScale="1.0" android:toYScale="1.0"/> </set> app_base/src/main/res/anim/pop_operate_hide.xml
app_base/src/main/res/anim/pop_operate_show.xml
app_base/src/main/res/values/styles.xml
@@ -1,8 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <style name="pop_add"> <item name="android:windowEnterAnimation">@anim/pop_add_show</item> <item name="android:windowExitAnimation">@anim/pop_add_hide</item> <style name="pop_operate"> <item name="android:windowEnterAnimation">@anim/pop_operate_show</item> <item name="android:windowExitAnimation">@anim/pop_operate_hide</item> </style> <style name="pop_info"> <item name="android:windowEnterAnimation">@anim/pop_drop_show</item> <item name="android:windowExitAnimation">@anim/pop_drop_hide</item> </style> <!-- 对话框默认样式 --> gradle.properties
@@ -20,6 +20,8 @@ # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true android.enableJetifier=true android.injected.testOnly=false KEY_PATH=zhangshiapp.keystore