Vec*_*tor 1 android material kotlin snackbar
我们正在尝试创建一个Snackbar。Java应用程序中的代码已使用Android Studio中的Java到Kotlin转换器进行了转换。接下来,我们在许多不同的网站上查看了各种示例,甚至尝试实现《 Kotlin编程指南》一书中的代码。我们将在下面发布所有非工作示例。我们的问题是如何创建适当的语法来显示Snackbar?我们想单击一个带有onClick = onSNACK的btnSNACK以显示Snackbar
这是我们真的要使用的Java到Kotlin的转换器代码
fun onSNACK(view: View){
//Snackbar(view)
//val snackbar = Snackbar(view, "Permission Granted", Snackbar.LENGTH_LONG).setAction("Action", null).show()
snackbar.make(view, "Replace with your own action",
snackbar.LENGTH_LONG).setAction("Action", null).show()
snackbar.setActionTextColor(Color.BLUE)
val snackbarView = snackbar.getView()
snackbarView.setBackgroundColor(Color.LTGRAY)
val textView =
snackbarView.findViewById(android.support.design.R.id.snackbar_text)
textView.setTextColor(Color.BLUE)
textView.setTextSize(28f)
snackbar.show()
}
Run Code Online (Sandbox Code Playgroud)
下次尝试使用此代码
class Snackbar{
object LENGTH_LONG {
}
fun show() {
}
}
fun onSNACK(view: View){
snackbar = Snackbar.make(this, "Welcome to Android Teachers..!!",
Snackbar.LENGTH_LONG)
snackbar.show()
}
Run Code Online (Sandbox Code Playgroud)
我们的布局是具有Snackbar的Activity的RelativeLayout(RL)
class Snackbar(view: View?): Any() {
object LENGTH_SHORT {}
fun View.snack(message: String, length: Int = Toast.LENGTH_LONG, f: Snackbar.
() -> Unit) {
val snack = Snackbar.make(this.findViewById(R.id.RL), message, length)
snack.f()
snack.show()
}
Run Code Online (Sandbox Code Playgroud)
我们认为这会起作用,将第一行代码声明为顶层
lateinit var snackbar: Snackbar//top level
fun onSNACK(){
btnSNACK.setOnClickListener { view ->
Snackbar.make(view, "Replace with your own action",
Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
}
}
Run Code Online (Sandbox Code Playgroud)
我们在带有和不带有这些各种方法的情况下使用了Snackbar类。我们能够删除大多数这些示例中的所有红色警告,但是工作“ make”仅提供了相同的建议“更改变量名称”,这从我们Kotlin新手的角度来看是没有意义的。我们不希望使用Anko插件我们也没有看到任何指向Snackbar的导入是的,我们有jetbrains stdlib v7依赖项没有设计依赖项
由于小吃店是支持设计库的一部分,因此您需要在应用程序模块build.gradle中添加以下依赖项
implementation 'com.android.support:design:27.1.1'
Run Code Online (Sandbox Code Playgroud)
请参阅此以获取更多详细信息https://developer.android.com/reference/android/support/design/widget/Snackbar
然后这是您修改后的代码,将显示小吃店
fun onSNACK(view: View){
//Snackbar(view)
val snackbar = Snackbar.make(view, "Replace with your own action",
Snackbar.LENGTH_LONG).setAction("Action", null)
snackbar.setActionTextColor(Color.BLUE)
val snackbarView = snackbar.view
snackbarView.setBackgroundColor(Color.LTGRAY)
val textView =
snackbarView.findViewById(android.support.design.R.id.snackbar_text) as TextView
textView.setTextColor(Color.BLUE)
textView.textSize = 28f
snackbar.show()
}
Run Code Online (Sandbox Code Playgroud)
在 Kotlin 中就像这样
Snackbar.make(binding.root, "My Message", Snackbar.LENGTH_SHORT).show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8633 次 |
| 最近记录: |