张钢
2024-09-02 63608b5dca9eebb6fa2cb1a8652b395f1d910c3e
app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
@@ -33,6 +33,8 @@
import com.application.zhangshi_app_android.databinding.ActivityGrowthExperienceBinding;
import com.application.zhangshi_app_android.ui.DLBaseActivity;
import com.google.android.material.tabs.TabLayout;
import com.hjq.bar.TitleBar;
import java.util.List;
/**
@@ -99,6 +101,26 @@
            mOperatePopupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
        });
        final int SCROLL_THRESHOLD = 400; // 滑动阈值,按钮在滑动超过该阈值后开始根据超出阈值距离渐渐显示出来
        final int SCROLL_DISTANCE = 400; // 按钮从隐藏到全部显示出来需要滑动的距离
        binding.fabMoveToTop.setAlpha(0f);
        binding.nestedScrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
            @Override
            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                // 当滑动距离超过阈值一半时,开始慢慢显示按钮
                if (scrollY >= SCROLL_THRESHOLD) {
                    // 根据滑动距离设置按钮透明度
                    float alpha = Math.min(1.0f, (float) (scrollY - SCROLL_THRESHOLD) / SCROLL_DISTANCE);
                    binding.fabMoveToTop.setAlpha(alpha);
                } else {
                    binding.fabMoveToTop.setAlpha(0f);
                }
            }
        });
        binding.fabMoveToTop.setOnClickListener(v -> {
            // 点击按钮返回顶部
            binding.nestedScrollView.smoothScrollTo(0, 0);
        });
    }
    @Override
@@ -116,12 +138,12 @@
    public void initLiveDataObserve() {
        viewModel.getIsExperienceExpendedLiveData().observe(this, aBoolean -> {
            if (aBoolean){
                binding.ivExperienceFold.setOnClickListener(view -> {
                binding.layoutExperienceTitle.setOnClickListener(view -> {
                    collapseView(binding.layoutExperience,binding.layoutExperienceTitle);
                    viewModel.getIsExperienceExpendedLiveData().setValue(false);
                });
            }else {
                binding.ivExperienceFold.setOnClickListener(view -> {
                binding.layoutExperienceTitle.setOnClickListener(view -> {
                    expendView(binding.layoutExperience);
                    viewModel.getIsExperienceExpendedLiveData().setValue(true);
                });
@@ -129,12 +151,12 @@
        });
        viewModel.getIsRelationExpendedLiveData().observe(this, aBoolean -> {
            if (aBoolean){
                binding.ivRelationFold.setOnClickListener(view -> {
                binding.layoutRelationTitle.setOnClickListener(view -> {
                    collapseView(binding.layoutRelation,binding.layoutRelationTitle);
                    viewModel.getIsRelationExpendedLiveData().setValue(false);
                });
            }else {
                binding.ivRelationFold.setOnClickListener(view -> {
                binding.layoutRelationTitle.setOnClickListener(view -> {
                    expendView(binding.layoutRelation);
                    viewModel.getIsRelationExpendedLiveData().setValue(true);
                });
@@ -142,12 +164,12 @@
        });
        viewModel.getIsHolderExpendedLiveData().observe(this, aBoolean -> {
            if (aBoolean){
                binding.ivHolderFold.setOnClickListener(view -> {
                binding.layoutHolderTitle.setOnClickListener(view -> {
                    collapseView(binding.layoutHolder,binding.layoutHolderTitle);
                    viewModel.getIsHolderExpendedLiveData().setValue(false);
                });
            }else {
                binding.ivHolderFold.setOnClickListener(view -> {
                binding.layoutHolderTitle.setOnClickListener(view -> {
                    expendView(binding.layoutHolder);
                    viewModel.getIsHolderExpendedLiveData().setValue(true);
                });
@@ -155,12 +177,12 @@
        });
        viewModel.getIsAbroadExpendedLiveData().observe(this, aBoolean -> {
            if (aBoolean){
                binding.ivAbroadFold.setOnClickListener(view -> {
                binding.layoutAbroadTitle.setOnClickListener(view -> {
                    collapseView(binding.layoutAbroad,binding.layoutAbroadTitle);
                    viewModel.getIsAbroadExpendedLiveData().setValue(false);
                });
            }else {
                binding.ivAbroadFold.setOnClickListener(view -> {
                binding.layoutAbroadTitle.setOnClickListener(view -> {
                    expendView(binding.layoutAbroad);
                    viewModel.getIsAbroadExpendedLiveData().setValue(true);
                });
@@ -193,6 +215,12 @@
        viewModel.getAutobiographyLiveData().observe(this, new Observer<List<GrowthExperienceAutobiographyBean>>() {
            @Override
            public void onChanged(List<GrowthExperienceAutobiographyBean> beans) {
                if (beans==null||beans.size() == 0 ){
                    binding.tvFill.setVisibility(View.GONE);
                    return;
                }else {
                    binding.tvFill.setVisibility(View.VISIBLE);
                }
                binding.tabLayout.removeAllTabs();
                for (int i = 0; i < beans.size(); i++) {
                    GrowthExperienceAutobiographyBean bean = beans.get(i);
@@ -275,4 +303,9 @@
        animator.start();
    }
    @Override
    public void onLeftClick(TitleBar titleBar) {
        finish();
    }
}