该文档告诉我们有关open注释的以下内容:
类上的开放注解与 Java 的最终注解相反:它允许其他人从这个类继承。默认情况下,Kotlin 中的所有类都是 final 的,这对应Effective Java,第 3 版,第 19 条:继承的设计和文档,否则禁止它。
我的课程
class Foo //I can't inherit it
open class Bar //I can inherit it
Run Code Online (Sandbox Code Playgroud)
final默认情况下保留所有类的真正动机是什么?有没有性能上的提升?或者只是一种设计模式?为什么open默认禁止?
我一直在搜索一段时间,如下图所示,但不幸的是我找不到类似的东西
edit menu item正在向底部的CollapsingToolbarLayout,当它被展开
我为菜单项尝试了多种属性组合,但没有成功
这是我的尝试
我的屏幕XML
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".ui.activities.AmbassadorActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:toolbarId="@+id/toolbar">
<ImageView
android:id="@+id/photo"
android:scaleType="centerCrop"
android:transitionName="@string/ambassador_photo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"
android:contentDescription="@string/ambassador_photo" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:navigationIcon="@drawable/ic_arrow_back_white_24dp"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_ambassador" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
我的菜单XML
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".ui.activities.AmbassadorActivity">
<item
android:id="@+id/action_save"
android:title="@string/save"
android:icon="@drawable/ic_save_white_24dp"
android:orderInCategory="300"
app:showAsAction="always" />
<item android:id="@+id/action_skills"
android:title="@string/skills"
app:showAsAction="ifRoom"
android:orderInCategory="200"
android:icon="@drawable/ic_local_activity_white_24dp"/>
<item …Run Code Online (Sandbox Code Playgroud) android menu menu-items android-layout android-collapsingtoolbarlayout
我需要在我的代码上留下一些事情要做,并且TODO()自动生成会产生很长的评论,例如 follow
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
Run Code Online (Sandbox Code Playgroud)
上面一行告诉我去File -> Setting -> File Template改变它,但这个选项不存在于TODO()函数中。如何解决?
我有以下情况,一个名为savefrom 的扩展函数Marker
1.代码
fun Marker.save(ctx: Context) {
//database is an extension property from Context
ctx.database.use {
insert("markers",
"id" to this@save.id,
"latitude" to this@save.position.latitude,
"longitude" to this@save.position.longitude,
"name" to this@save.title)
}
}
Run Code Online (Sandbox Code Playgroud)
代码对我来说很好.
2.问题
要使用我需要使用的Markerinside save方法的实例this@save,但是这个名字不是sugestive,在第一个视图中,它看起来不像Marker.
3.问题
是否可以使用别名来代替使用this@save?
非常感谢!
kotlin ×4
android ×3
java ×2
alias ×1
android-collapsingtoolbarlayout ×1
class ×1
comments ×1
inheritance ×1
menu ×1
menu-items ×1
performance ×1
todo ×1