| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
[TOC]
简单Toolbar已经完成
简单的侧滑菜单完成
修改MainActivity中的initToolbar()方法
HomeAsUp按钮原本的用意是"返回上一级",这里对其进行了修改
在MainActivity中的onOptionsItemSelected()方法中写点击事件
case android.R.id.home:
// 将滑动菜单展示出来
mDrawerLayout.openDrawer(GravityCompat.START);
break;HomeAsUp按钮的id永远都是android.R.id.home
即实现
编写menu,用来在NavigationView中显示具体的菜单项
在menu文件夹下新建nav_menu.xml文件
编写headerLayout,用来在NavigationView中显示头部布局
在layout下创建nav_header.xml文件
仅仅在头部布局添加头像、邮箱和昵称
修改activity_main.xml将原本的菜单控件替换为com.google.android.material.navigation.NavigationView
修改MainActivity中initToolbar()方法代码
在FAB的点击事件中编写
// 弹出一条提示
Snackbar.make(v, "Data deleted", Snackbar.LENGTH_SHORT)
// 设置额外的行动(undo按钮)和点击按钮后的点击事件
.setAction("Undo", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Data restored",
Toast.LENGTH_SHORT).show();
}
})
// 展示出来
.show();make() 方法的第一个参数需要传入一个View,只要是当前界面布局的任意一个View都可以,Snackbar会使用这个View来自动查找最外层的布局
是一个加强版的FrameLayout
CoordinatorLayout可以监听其所有子控件的各种事件,然后自动帮助我们做出最为合理的响应。举个简单的例子,刚才弹出的Snackbar提示将悬浮按钮遮挡住了,而如果我们能让CoordinatorLayout监听到Snackbar的弹出事件,那么它会自动将内部的FloatingActionButton向上偏移,从而确保不会被Snackbar遮挡到。
将原先主界面的<FrameLayout>替换为<androidx.coordinatorlayout.widget.CoordinatorLayout>
采用在RecyclerView中实现好多个CardView
Toolbar被RecyclerView给挡住了,解决:AppBarLayout是一个垂直方向的LinearLayout,它在内部做了很多滚动事件的封装,并应用了一些Material Design的设计理念。
已经出现Toolbar
CollapsingToolbarLayout是一个作用于Toolbar基础之上的布局。CollapsingToolbarLayout是不能独立存在的,它在设计的时候就被限定只能作为AppBarLayout的直接子布局来使用,而AppBarLayout又必须是CoordinatorLayout的子布局
想要让背景图能够和系统状态栏融合,需要借助android:fitsSystemWindows 这个属性来实现。在CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout这种嵌套结构的布局中,将控件的android:fitsSystemWindows 属性指定成true ,就表示该控件会出现在系统状态栏里。对应到我们的程序,那就是水果标题栏中的ImageView应该设置这个属性了。不过只给ImageView设置这个属性是没有用的,我们必须将ImageView布局结构中的所有父布局都设置上这个属性才可以
另一种方式
if (Build.VERSION.SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
// 在setContentView上方调用
setContentView(R.layout.activity_weather);然后在相应控件添加android:fitsSystemWindows 属性,设置成true 就表示会为系统状态栏留出空间
| Back | FazBrowse Home | New Git URL |