《第一行代码》第二版学习笔记(11)——最佳的UI体验

2024-05-10 20:12

本文主要是介绍《第一行代码》第二版学习笔记(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体验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977435

相关文章

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

什么是 Linux Mint? 适合初学者体验的桌面操作系统

《什么是LinuxMint?适合初学者体验的桌面操作系统》今天带你全面了解LinuxMint,包括它的历史、功能、版本以及独特亮点,话不多说,马上开始吧... linux Mint 是一款基于 Ubuntu 和 Debian 的知名发行版,它的用户体验非常友好,深受广大 Linux 爱好者和日常用户的青睐,

python多进程实现数据共享的示例代码

《python多进程实现数据共享的示例代码》本文介绍了Python中多进程实现数据共享的方法,包括使用multiprocessing模块和manager模块这两种方法,具有一定的参考价值,感兴趣的可以... 目录背景进程、进程创建进程间通信 进程间共享数据共享list实践背景 安卓ui自动化框架,使用的是

SpringBoot生成和操作PDF的代码详解

《SpringBoot生成和操作PDF的代码详解》本文主要介绍了在SpringBoot项目下,通过代码和操作步骤,详细的介绍了如何操作PDF,希望可以帮助到准备通过JAVA操作PDF的你,项目框架用的... 目录本文简介PDF文件简介代码实现PDF操作基于PDF模板生成,并下载完全基于代码生成,并保存合并P

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下