本文共 3102 字,大约阅读时间需要 10 分钟。
首先看下效果图:
相信大家已经不陌生了,进入商品详情页,首先是左图的效果,当我们向上滑动的时候逐渐变化为右图的效果。使用知识点:MaterialDesign中的CoordinatoryLayout,ToolBarLayout,CollapsingToolBarLayout。源码如下:
1、xml布局文件2、Java文件
public class MeituanActivity extends AppCompatActivity { private Toolbar toolbar; private AppBarLayout appBarLayout; private CollapsingToolbarLayout collapsingToolbarLayout; private LinearLayout normal; private TextView phoneBuy,title; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_meituan); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsingToolbarLayout); collapsingToolbarLayout.setTitle(""); normal = (LinearLayout) findViewById(R.id.normal); phoneBuy = (TextView) findViewById(R.id.phone_buy); title = (TextView) findViewById(R.id.title); appBarLayout = (AppBarLayout) findViewById(R.id.appBarLayout); appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener(){ @Override public void onStateChanged(AppBarLayout appBarLayout, State state) { if (state == State.COLLAPSED){ //折叠 //collapsingToolbarLayout.setTitle("美味馄饨店"); title.setText("美味馄饨店"); normal.setVisibility(View.GONE); phoneBuy.setVisibility(View.VISIBLE); }else if (state == State.EXPANDED){ //展开 //collapsingToolbarLayout.setTitle(""); title.setText(""); normal.setVisibility(View.VISIBLE); phoneBuy.setVisibility(View.GONE); }else { //中间态 //collapsingToolbarLayout.setTitle(""); title.setText(""); } } }); }}
知识点参考文章: