Linjiajia
2023-07-25 82e57df230ecb744af6c8865f80870ba03c86d89
app/src/main/java/com/application/zhangshi_app_android/ui/function/FunctionFragment.java
@@ -2,20 +2,43 @@
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.PopupWindow;
import com.android.app_base.base.view.BaseFragment;
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.GlideUtil;
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.TestActivity;
import com.application.zhangshi_app_android.ui.home.HomeFragment;
import com.application.zhangshi_app_android.ui.main.MainActivity;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
 * @author Ljj
 * @date 2023.03.15. 20:14
 * @desc 功能 Fragment
 */
public class FunctionFragment extends BaseFragment<FragmentFunctionBinding,FunctionFragmentViewModel> {
    public FunctionFragment() {
public class FunctionFragment extends DLBaseFragment<FragmentFunctionBinding,FunctionFragmentViewModel> {
    private PopupWindow mOperatePopupWindow;
    private ImageCarouselFragment imageCarouselFragment;
    private VideoFragment videoFragment;
    private FunctionFragment() {
    }
    public static FunctionFragment newInstance() {
@@ -41,6 +64,12 @@
    @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) {
@@ -59,17 +88,11 @@
                AppManager.getAppManager().startActivity(FamilyAssetsActivity.class);
            }
        });
        binding.layoutHomeDevices.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AppManager.getAppManager().startActivity(HomeDevicesActivity.class);
            }
        binding.layoutHomeDevices.setOnClickListener(view -> {
            AppManager.getAppManager().startActivity(HomeDevicesActivity.class);
        });
        binding.layoutGrowingUp.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AppManager.getAppManager().startActivity(GrowthExperienceActivity.class);
            }
        binding.layoutGrowingUp.setOnClickListener(view -> {
            AppManager.getAppManager().startActivity(GrowthExperienceActivity.class);
        });
        binding.layoutHonorCollection.setOnClickListener(v->{
            AppManager.getAppManager().startActivity(HonorCollectionActivity.class);
@@ -104,16 +127,72 @@
        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.ivOperate.setOnClickListener(v->{
            AppManager.getAppManager().startActivity(TestActivity.class);
        });
        imageCarouselFragment = ImageCarouselFragment.newInstance();
        videoFragment = VideoFragment.newInstance();
        replaceFragment(imageCarouselFragment);
        //右上角操作弹窗
        mOperatePopupWindow = initPopUpWindow(View.inflate(getSelfActivity(),R.layout.pop_switch_video_or_image,null));
        mOperatePopupWindow.getContentView().findViewById(R.id.tv_image).setOnClickListener(v -> {
            mOperatePopupWindow.dismiss();
            if (imageCarouselFragment == null){
                imageCarouselFragment = ImageCarouselFragment.newInstance();
            }
            replaceFragment(imageCarouselFragment);
        });
        mOperatePopupWindow.getContentView().findViewById(R.id.tv_video).setOnClickListener(v -> {
            mOperatePopupWindow.dismiss();
            if (videoFragment == null){
                videoFragment = VideoFragment.newInstance();
            }
            replaceFragment(videoFragment);
        });
        //点击弹出操作弹窗
        binding.ivOperate.setOnClickListener(v -> {
            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(getSelfActivity(),85) +binding.ivOperate.getWidth(),0);
        });
    }
    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
    protected void initLiveDataObserve() {
        viewModel.getBannerListLiveData().observe(this, new Observer<List<BannerBean>>() {
            @Override
            public void onChanged(List<BannerBean> bannerBeans) {
                List<String> imageList = new ArrayList<>();
                List<String> videoList = new ArrayList<>();
                for (BannerBean bannerBean : bannerBeans) {
                    if (bannerBean.getFlag() == 0){
                        //图片
                        imageList.add(bannerBean.getUrl());
                    }else if (bannerBean.getFlag() == 1){
                        //视频
                        videoList.add(bannerBean.getUrl());
                    }
                }
                imageCarouselFragment.setImageList(imageList);
                videoFragment.setVideoList(videoList);
            }
        });
    }
    @Override
@@ -121,5 +200,17 @@
        return true;
    }
    @Override
    protected void dataNull() {
        super.dataNull();
        binding.layoutFrame.setVisibility(View.GONE);
        binding.layoutDataNull.setVisibility(View.VISIBLE);
    }
    @Override
    protected void hide() {
        super.hide();
        binding.layoutFrame.setVisibility(View.VISIBLE);
        binding.layoutDataNull.setVisibility(View.GONE);
    }
}