package com.application.zhangshi_app_android.ui.function; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.PopupWindow; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.Observer; import com.android.app_base.manager.AppManager; import com.android.app_base.utils.ScreenSizeUtils; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.BannerBean; import com.application.zhangshi_app_android.databinding.FragmentFunctionBinding; import com.application.zhangshi_app_android.ui.DLBaseFragment; import com.application.zhangshi_app_android.ui.home.HomeFragment; import com.application.zhangshi_app_android.ui.main.MainActivity; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * @author Ljj * @date 2023.03.15. 20:14 * @desc 功能 Fragment */ public class FunctionFragment extends DLBaseFragment { private PopupWindow mOperatePopupWindow; private ImageCarouselFragment imageCarouselFragment; private VideoCarouselFragment videoCarouselFragment; private FunctionFragment() { } public static FunctionFragment newInstance() { FunctionFragment fragment = new FunctionFragment(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } @Override protected int getLayoutId() { return R.layout.fragment_function; } @Override protected int getVariableId() { return BR.viewModel; } @Override protected void initParam() { } @Override protected void initView() { binding.layoutHomeRootNet.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MainActivity.start(getSelfActivity(), HomeFragment.class); } }); binding.layoutFamilyMemorabilia.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AppManager.getAppManager().startActivity(FamilyMemorabiliaActivity.class); } }); binding.layoutGrowingUp.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AppManager.getAppManager().startActivity(GrowthExperienceActivity.class); } }); binding.layoutFamilyAssets.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AppManager.getAppManager().startActivity(FamilyAssetsActivity.class); } }); binding.layoutHomeDevices.setOnClickListener(view -> { AppManager.getAppManager().startActivity(HomeDevicesActivity.class); }); binding.layoutGrowingUp.setOnClickListener(view -> { 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); }); binding.layoutHealthCare.setOnClickListener(v->{ AppManager.getAppManager().startActivity(HealthCareActivity.class); }); binding.layoutPrivacy.setOnClickListener(v->{ AppManager.getAppManager().startActivity(PrivacyActivity.class); }); binding.layoutTourism.setOnClickListener(v->{ AppManager.getAppManager().startActivity(TourismActivity.class); }); binding.layoutContacts.setOnClickListener(v->{ AppManager.getAppManager().startActivity(ContactsActivity.class); }); binding.ivOperateSelect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AppManager.getAppManager().startActivity(new Intent(getSelfActivity(),ImageSelectActivity.class).putExtra("flag",0).putExtra("list", (Serializable) imageCarouselFragment.getImageList())); } }); //右上角操作弹窗 mOperatePopupWindow = initPopUpWindow(View.inflate(getSelfActivity(),R.layout.pop_switch_video_or_image,null)); mOperatePopupWindow.getContentView().findViewById(R.id.tv_image).setOnClickListener(v -> { mOperatePopupWindow.dismiss(); imageCarouselFragment = ImageCarouselFragment.newInstance(); replaceFragment(imageCarouselFragment); imageCarouselFragment.setImageList(viewModel.getImageListLiveData().getValue()); binding.ivOperateSelect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AppManager.getAppManager().startActivity(new Intent(getSelfActivity(),ImageSelectActivity.class).putExtra("flag",0).putExtra("list", (Serializable) imageCarouselFragment.getImageList())); } }); }); mOperatePopupWindow.getContentView().findViewById(R.id.tv_video).setOnClickListener(v -> { mOperatePopupWindow.dismiss(); videoCarouselFragment = VideoCarouselFragment.newInstance(); replaceFragment(videoCarouselFragment); videoCarouselFragment.setVideoList(viewModel.getVideoListLiveData().getValue()); binding.ivOperateSelect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AppManager.getAppManager().startActivity(new Intent(getSelfActivity(),ImageSelectActivity.class).putExtra("flag",1).putExtra("list", (Serializable) videoCarouselFragment.getVideoList())); } }); }); //点击弹出操作弹窗 binding.ivOperate.setOnClickListener(v -> { mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(getSelfActivity(),85) +binding.ivOperate.getWidth(),0); }); imageCarouselFragment = ImageCarouselFragment.newInstance(); replaceFragment(imageCarouselFragment); } public void replaceFragment(Fragment fragment){ FragmentTransaction transaction = getSelfActivity().getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.layout_frame,fragment); transaction.commit(); } @Override protected void initData() { viewModel.getBannerData(); } @Override public void onResume() { super.onResume(); initData(); } @Override protected void initLiveDataObserve() { viewModel.getImageListLiveData().observe(this, new Observer>() { @Override public void onChanged(List bannerBeans) { if (imageCarouselFragment != null){ imageCarouselFragment.setImageList(bannerBeans); } } }); viewModel.getVideoListLiveData().observe(this, new Observer>() { @Override public void onChanged(List bannerBeans) { if (videoCarouselFragment != null){ videoCarouselFragment.setVideoList(bannerBeans); } } }); } @Override protected boolean isStatusBarImmersionEnabled() { return true; } }