本文主要是介绍《第一行代码》第二版学习笔记(11)——最佳的UI体验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、Toolbar
- 二、滑动菜单
- 1、DrawerLayout——抽屉
- 2、NavigationView
- 三、悬浮按钮和可交互提示
- 1、FloatingActionButton——悬浮按钮
- 2、Snackbar——提示工具
- 3、CoordinatorLayout
- 四、卡片式布局
- 1、cardView
- 2、AppBarLayout
- 五、下拉刷新——SwipeRefreshLayout
- 六、可折叠式标题栏_CollapsingToolbarLayout
一、Toolbar
引入依赖
二、滑动菜单
1、DrawerLayout——抽屉
是一个布局,在布局中允许放入两个直接子控件,第一个子控件是主屏幕中显示的内容,第二个子控件是滑动菜单中显示的内容。
2、NavigationView
<com.google.android.material.navigation.NavigationViewandroid:id="@+id/nav_view"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_gravity="start"app:menu="@menu/nav_menu"app:headerLayout="@layout/nav_header" />
三、悬浮按钮和可交互提示
1、FloatingActionButton——悬浮按钮
<com.google.android.material.floatingactionbutton.FloatingActionButtonandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:layout_gravity="bottom|end"android:layout_margin="16dp"android:id="@+id/fab"android:src="@drawable/ic_done"app:elevation="8dp"/>
2、Snackbar——提示工具
在Toast的基础上加入可交互的按钮,当用户点击按钮的时候可以做一些额外的操作。
button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Snackbar.make(v,"Data deleted",Snackbar.LENGTH_SHORT).setAction("Undo", new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this,"Data restored",Toast.LENGTH_SHORT).show();}}).show();Toast.makeText(MainActivity.this,"FAB clicked",Toast.LENGTH_SHORT).show();}});
3、CoordinatorLayout
加强版的FrameLayout,能监听所有子控件的各种事件,然后自动帮助我们做出最为合理的响应。
四、卡片式布局
1、cardView
implementation 'com.github.bumptech.glide:glide:3.7.0
2、AppBarLayout
解决RecyclerView遮挡ToolBar:
- 将ToolBar嵌套到AppBarLayout中
- 给RecyclerView指定一个布局行为
app:layout_behavior="@string/appbar_scrolling_view_behavior
五、下拉刷新——SwipeRefreshLayout
下拉刷新RecyclerView中的元素,将RecyclerView嵌套在SwipeRefreshLayout中,布局行为也放在SwipeRefreshLayout中
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
<androidx.swiperefreshlayout.widget.SwipeRefreshLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/swipe_refresh"
refreshLayout = findViewById(R.id.swipe_refresh);refreshLayout.setColorSchemeResources(com.google.android.material.R.color.design_default_color_on_primary);refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {@Overridepublic void onRefresh() {refreshFruits();}});
六、可折叠式标题栏_CollapsingToolbarLayout
CollapsingToolbarLayout不能独立存在,只能作为AppBarLayout的子布局使用,而AppBarLayout又必须是CoordinatorLayout的子布局。
实战布局:
水果详情的展示页面:水果标题栏+水果内容详情。标题栏将由普通的标题栏加上图片组合而成。
<androidx.coordinatorlayout.widget.CoordinatorLayout...<com.google.android.material.appbar.AppBarLayout...<com.google.android.material.appbar.CollapsingToolbarLayout...</com.google.android.material.appbar.CollapsingToolbarLayout></com.google.android.material.appbar.AppBarLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
不管是NestedScrollView还是ScrollView,它们的内部都只允许存在一个直接子布局。
分割线——————————————————————————————————
欧酷天气也开发完成啦,《第一行代码》真的超级适合安卓新手入门,讲解非常通俗易懂,好像郭霖老师在我身边讲解,局部-整体的方式让读者一步一步的看到安卓的全貌,在学习的过程中穿插案例让我更好的理解运用该功能的使用。感谢郭霖老师,感谢各位帮助我解决的up。第一阶段到这里,接下来将更加深入的学习安卓,去理解封装背后的原理。wow小萌新一直在路上。冲鸭! wowwow!
这篇关于《第一行代码》第二版学习笔记(11)——最佳的UI体验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!