网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
要在您的应用程序中使用 Snackbar,您需要做的就是在您的应用程序中拥有 Material Design 依赖项。build.gradle因此,在您的文件中添加以下依赖项:
implementation "com.google.android.material:$latest_version"
然后你可以像 Toast 一样使用 Snackbar。例如:
Snackbar.make(view, "Show some message here", Snackbar.LENGTH_SHORT).show()
上面的代码将在 Snackbar 中显示一条简单的消息。Snackbar 提供了一些功能。例如:
- setAction():这可用于对 Snackbar 进行一些操作。例如,您可以使用 Snackbar 来显示网络错误消息并执行名为 Retry 的操作。
- setBackgroundColor():这可以用来改变 Snackbar 的背景颜色。
- setAnchorView():默认情况下,Snackbar 出现在屏幕底部。setAnchorView但是你可以在函数的帮助下改变它的位置。
还有其他功能可以与 Snackbar 一起使用。
定制Snackbar
现在,是时候创建我们自己的 Snackbar 了。
所以,我们要做的第一件事就是为 Snackbar 创建一个自定义布局。因此,为此,我们需要创建一些文件。创建两个名为CustomSnackbar
和的类CustomSnackbarView
。创建两个名为item_custom_snackbar
和的 XML 文件layout_custom_snackbar
。
将item_custom_snackbar
包含 Snackbar 的元素。在这里,我们将在 Snackbar 中拥有一个文本视图和一个图像视图。您可以根据需要更改 UI。因此,将的代码item_custom_snackbar
是:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="60dp">
<ImageView
android:id="@+id/ivCheck"
android:layout_width="60dp"
android:layout_height="match_parent"
android:src="@drawable/ic_check_circle"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tvMessage"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:padding="8dp"
android:text="Payment Successful!"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/ivCheck"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
现在,要创建自定义 Snackbar 视图,您需要实现ContentViewCallback
。这用于告诉 Snackbar 的内容何时开始出现以及何时从屏幕上消失。因此,将的代码CustomSnackbarView
是:
class CustomSnackbarView @JvmOverloads constructor(
context: Context,
attributeSet: AttributeSet? = null,
defaultStyle: Int = 0
) : ConstraintLayout(context, attributeSet, defaultStyle), ContentViewCallback {
init {
View.inflate(context, R.layout.item_custom_snackbar, this)
}
override fun animateContentIn(delay: Int, duration: Int) {
// TODO("Use some animation")
}
override fun animateContentOut(delay: Int, duration: Int) {
// TODO("Use some animation")
}
}
在这里,我们有两个函数叫做animateContentIn
和animateContentOut
,它们用于在 Snackbar 的内容出现和从屏幕上消失时有一些动画。
现在,我们的自定义视图已准备就绪,我们可以在任何布局文件中使用此视图。所以,我们将在我们的layout_custom_snackbar
相同的代码将是:
<?xml version="1.0" encoding="utf-8"?>
<com.example.snackbarexample.CustomSnackbarView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" />
最后,CustomSnackbar
遗嘱的代码是:
面试复习笔记
这份资料我从春招开始,就会将各博客、论坛。网站上等优质的Android开发中高级面试题收集起来,然后全网寻找最优的解答方案。每一道面试题都是百分百的大厂面经真题+最优解答。包知识脉络 + 诸多细节。
节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
《960页Android开发笔记》
《1307页Android开发面试宝典》
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!