|
|
@@ -4,6 +4,9 @@ import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
import android.view.MenuItem;
|
|
|
import android.view.View;
|
|
|
+import android.view.ViewGroup;
|
|
|
+import android.widget.ImageView;
|
|
|
+import android.widget.RelativeLayout;
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
import androidx.fragment.app.Fragment;
|
|
|
@@ -11,6 +14,7 @@ import androidx.navigation.NavController;
|
|
|
import androidx.viewpager.widget.ViewPager;
|
|
|
|
|
|
import com.flyco.tablayout.SlidingTabLayout;
|
|
|
+import com.google.android.material.appbar.AppBarLayout;
|
|
|
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
|
|
import com.google.android.material.bottomnavigation.LabelVisibilityMode;
|
|
|
import com.itant.shibei.R;
|
|
|
@@ -24,12 +28,21 @@ import com.itant.shibei.ui.mine.MineActivity;
|
|
|
import com.itant.shibei.ui.mine.MineFragment;
|
|
|
import com.miekir.common.adapter.TabFragmentAdapter;
|
|
|
import com.miekir.common.utils.ViewTool;
|
|
|
+import com.socks.library.KLog;
|
|
|
+import com.socks.library.KLogUtil;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
public class TabActivity extends BaseShiBeiActivity implements View.OnClickListener {
|
|
|
|
|
|
+ private RelativeLayout rl_search;
|
|
|
+ private RelativeLayout rl_search_top;
|
|
|
+ private ImageView iv_search;
|
|
|
+ private ImageView iv_search_top;
|
|
|
+
|
|
|
+ private double mDefaultImageSize;
|
|
|
+
|
|
|
@Override
|
|
|
public int getLayoutID() {
|
|
|
return R.layout.activity_tab;
|
|
|
@@ -53,8 +66,50 @@ public class TabActivity extends BaseShiBeiActivity implements View.OnClickListe
|
|
|
stl_home.setViewPager(vp_main, titles);
|
|
|
|
|
|
ViewTool.setOnClickListener(this, new int[]{R.id.rl_search_top, R.id.rl_more}, this);
|
|
|
+
|
|
|
+ mDefaultImageSize = getResources().getDimension(R.dimen.size_image_s);
|
|
|
+ rl_search = findViewById(R.id.rl_search);
|
|
|
+ iv_search = findViewById(R.id.iv_search);
|
|
|
+ rl_search_top = findViewById(R.id.rl_search_top);
|
|
|
+ iv_search_top = findViewById(R.id.iv_search_top);
|
|
|
+ AppBarLayout abl_main = findViewById(R.id.abl_main);
|
|
|
+ abl_main.addOnOffsetChangedListener(mAppBarOffsetChangedListener);
|
|
|
}
|
|
|
|
|
|
+ private AppBarLayout.OnOffsetChangedListener mAppBarOffsetChangedListener = new AppBarLayout.OnOffsetChangedListener() {
|
|
|
+ @Override
|
|
|
+ public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
|
|
|
+ // AppBarLayout完全折叠时,fraction为1
|
|
|
+ float fraction = ((float) Math.abs(verticalOffset)) / appBarLayout.getTotalScrollRange();
|
|
|
+
|
|
|
+ float reFraction = 1 - fraction;
|
|
|
+ if (reFraction < 0.007) {
|
|
|
+ // 完全折叠
|
|
|
+ rl_search_top.setVisibility(View.GONE);
|
|
|
+ rl_search.setVisibility(View.VISIBLE);
|
|
|
+ } else if (reFraction > 0.988) {
|
|
|
+ // 完全展开
|
|
|
+ rl_search.setVisibility(View.GONE);
|
|
|
+ rl_search_top.setVisibility(View.VISIBLE);
|
|
|
+ } else {
|
|
|
+ rl_search.setVisibility(View.VISIBLE);
|
|
|
+ rl_search_top.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+
|
|
|
+ double searchSize = mDefaultImageSize * fraction;
|
|
|
+ ViewGroup.LayoutParams searchParams = iv_search.getLayoutParams();
|
|
|
+ searchParams.width = (int) searchSize;
|
|
|
+ searchParams.height = (int) searchSize;
|
|
|
+ iv_search.requestLayout();
|
|
|
+
|
|
|
+ double topSearchSize = mDefaultImageSize - searchSize;
|
|
|
+ ViewGroup.LayoutParams topSearchParams = iv_search_top.getLayoutParams();
|
|
|
+ topSearchParams.width = (int) topSearchSize;
|
|
|
+ topSearchParams.height = (int) topSearchSize;
|
|
|
+ iv_search_top.requestLayout();
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public void onClick(View v) {
|