Material Design风 第二话(CollapsingToolbarLayout+AppBarLayout+NestedScrollView)
2016-12-10 22:33
549 查看
上xml文件
![](http://img.blog.csdn.net/20161210222806513?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjIyMzA5MzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
上activity
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@mipmap/a"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="350dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/ctool" android:layout_width="match_parent" android:layout_height="match_parent" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginEnd="20dp" app:expandedTitleMarginStart="10dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/image_title" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@mipmap/snowman" android:transitionName="小明" app:layout_collapseMode="parallax" app:layout_collapseParallaxMultiplier="1" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="500dp" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text_blackboard" android:layout_width="180dp" android:layout_height="80dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="65dp" android:layout_marginTop="120dp" android:text="小签在这里" android:textColor="@color/white" android:textSize="18dp" android:maxLines="3" android:maxLength="26" android:visibility="gone" /> <TextView android:gravity="center" android:id="@+id/text_show" android:layout_width="200dp" android:layout_height="80dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="60dp" android:layout_marginTop="50dp" android:padding="10dp" android:maxLines="2" android:text="欢迎来到小签\n请上滑~" android:lineSpacingExtra="5dp" android:textColor="@color/white" android:textSize="22dp" android:background="@drawable/text_selector" android:backgroundTintMode="add" android:elevation="20dp" /> <TextView android:id="@+id/add_text" android:layout_width="60dp" android:layout_height="60dp" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="60dp" android:layout_marginTop="400dp" android:background="@mipmap/addto" android:elevation="12dp" /> <TextView android:id="@+id/check_text" android:layout_width="60dp" android:layout_height="55dp" android:layout_marginLeft="60dp" android:layout_marginTop="400dp" android:background="@mipmap/check" android:backgroundTintMode="add" android:elevation="20dp" /> </RelativeLayout> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout> <android.support.design.widget.NavigationView android:id="@+id/slide_menu" android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="start" app:menu="@menu/slide_menu" > </android.support.design.widget.NavigationView> </android.support.v4.widget.DrawerLayout>
上activity
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private CollapsingToolbarLayout collapsingToolbarLayout; private ActionBarDrawerToggle actionBarDrawerToggle; private DrawerLayout drawerLayout; private ImageView imageView; private AppBarLayout appBarLayout; private TextView text_blakborad, text_show, text_add, text_check; private NavigationView navigationView; private TipModel nData; private int from; private final static int FROM_ADD = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getData(); initView(); setData(); } public void getData() { if (getIntent().getSerializableExtra("AddActivity") != null) { nData = (TipModel) getIntent().getSerializableExtra("AddActivity"); from = FROM_ADD; } } private void initView() { navigationView = (NavigationView) findViewById(R.id.slide_menu); imageView = (ImageView) findViewById(R.id.image_title); collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.ctool); text_add = (TextView) findViewById(R.id.add_text); text_add.setOnClickListener(this); text_check = (TextView) findViewById(R.id.check_text); text_check.setOnClickListener(this); text_blakborad = (TextView) findViewById(R.id.text_blackboard); text_show = (TextView) findViewById(R.id.text_show); appBarLayout = (AppBarLayout) findViewById(R.id.appbar); //侧滑插入布局 View headerView = navigationView.inflateHeaderView(R.layout.navigation_header); //修改图片 CircleImageView profile_image = (CircleImageView)headerView.findViewById(R.id.profile_image); if (SPUtils.getInstance(this).getStringValue("image")!=null){ String path =SPUtils.getInstance(this).getStringValue("image"); Glide.with(this) .load(path) .into(profile_image); } drawerLayout = (DrawerLayout) findViewById(R.id.activity_main); //标题栏的设置 //设置toolBar Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setTitle("小签"); setSupportActionBar(toolbar); //设置返回键 // getSupportActionBar().setDisplayHomeAsUpEnabled(true); //设置点击拉出侧滑 actionBarDrawerToggle = new ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.drawer_open, R.string.drawer_close); actionBarDrawerToggle.syncState(); drawerLayout.addDrawerListener(actionBarDrawerToggle); //设置伸缩栏 CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.ctool); collapsingToolbarLayout.setExpandedTitleColor(getResources().getColor(R.color.Cbbc9a)); collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE); appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { @Override public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { //到底部时会触发 if (verticalOffset == 0) { text_show.setVisibility(View.VISIBLE); text_blakborad.setVisibility(View.GONE); } if (verticalOffset > 100) { text_show.setVisibility(View.GONE); } //到顶部位置附近会触发 if (Math.abs(verticalOffset) >= (appBarLayout.getTotalScrollRange() - 500)) { Log.e("--------------", "hbbbbbbbbbb"); text_show.setVisibility(View.GONE); text_blakborad.setVisibility(View.VISIBLE); } } }); navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { //查看判断是否输入密码 case R.id.slide_item1: if (JudgeUtils.getIntence(getApplicationContext()).isPass()){ Intent intent = new Intent(getApplicationContext(), ScrollingActivity.class); startActivity(intent); finish(); } else { Intent intent = new Intent(getApplicationContext(), CheckActivity.class); startActivity(intent); finish(); } break; //添加 case R.id.slide_item2: Intent intent1 = new Intent(getApplicationContext(),AddSecretActivity.class); startActivity(intent1); break; //我的 case R.id.slide_item3: Intent intent3 = new Intent(getApplicationContext(), UserCenterActivity.class); startActivity(intent3); finish(); break; //关于 case R.id.slide_item4: Intent intent2 = new Intent(getApplicationContext(),AboutActivity.class); startActivity(intent2); break; default: break; } return true; } }); } private void setData() { if (from ==FROM_ADD){ text_blakborad.setText(nData.getContent()); } if (SPUtils.getInstance(this).getObject("list")==null){ ArrayList<TipModel> model = new ArrayList<TipModel>(); SPUtils.getInstance(this).putObject("list",model); } if (SPUtils.getInstance(this).getObject("slist")==null){ ArrayList<SecModel> smodel = new ArrayList<>(); SPUtils.getInstance(this).putObject("slist",smodel); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.add_text: Intent intent = new Intent(this, AddActivity.class); startActivity(intent); finish(); break; case R.id.check_text: Intent intent1 = new Intent(this, NoteListActivity.class); startActivity(intent1); default: break; } } private long timeExit=0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK&&event.getAction()==KeyEvent.ACTION_DOWN){ if (System.currentTimeMillis()-timeExit>2000){ timeExit=System.currentTimeMillis(); Toast.makeText(getApplicationContext(),"再按一下退出", Toast.LENGTH_SHORT).show(); } else { System.exit(0); } return true; }else { return super.onKeyDown(keyCode, event); } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件