Tag: 设计

如何使TextInputLayout提示为必填字段为红色星号

使用设计支持库中的TextInputLayout时,是否可以在提示红色时仅创建星号? 我已经看到关于整个提示样式的信息,但是这更复杂一点,因为只有*应该是红色的,而不是整个消息。 材料设计示例显示了这一点,但设计库似乎没有任何选择使用TextInputLayout和EditText以这种方式进行设计。 参考: https : //www.google.com/design/spec/components/text-fields.html#text-fields-required-fields 示例(带焦点的顶部有红色星号;没有焦点的底部没有红色星号): 我研究了在OnFocusChangeListener中设置提示到一个SpannableString(请参阅这里如何获取一个<string>条目中的红色星号 )(请参阅这里有textinputlayout内的编辑文本(红色星号)的必需符号 ) ,但提示是一个CharSequence。 有没有办法做到这一点,而不扩展TextInputLayout?

Android Studio不能应用我的设计更改

我试图通过删除操作栏或更改标题来更改某些活动的主题。 起初,我正在使用设计选项卡中的AppTheme选项。 但是,在网上搜索后,我知道我做的是错误的方式,所以我进入AndroidManifest文件手动进行更改。 不幸的是,它也不工作。 这是我的清单文件的代码: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.wonderheart"> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="Sign Up"/> <activity android:name=".Login" android:label="Log In"/> <activity android:name=".drawable.welcome"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".UserProfile" android:theme="@style/AppTheme.NoActionBar"/> <activity android:name=".HomePage" > </activity> </application> </manifest> 以下是我尝试更改的一些活动: 成功更改 操作栏标题操作栏标题未更改 […]

导入和锯齿实践

目前在Leiva的“Android开发者Kotlin”一书中,有一件事是我想知道的… import blah.data.Forecast import blah.domain.Forecast as ModelForecast 为什么要在每个数据和领域层创建一个“预测”类,然后别名? 为什么不简单地命名一个域名blah.domain.ModelForecast开始? 我通常尽量避免在自己的项目中使用相同的名称,即使这些类确实发生在不同的包中。 从不这样做,我有什么好处?

隐式属性类型是否与显式属性类型相同?

以下代码A来自Kotlin for Android开发人员。 代码B是由我写的。 这两个不同的代码块的功能是一样的吗? 代码A class DetailActivity : AppCompatActivity(), ToolbarManager { override val toolbar by lazy { find<Toolbar>(R.id.toolbar) } … } 代码B class DetailActivity : AppCompatActivity(), ToolbarManager { override val toolbar: Toolbar by lazy { find<Toolbar>(R.id.toolbar) } … }

在Kotlin中需要重写的空函数的编码约定

根据非常短的编码惯例 ,在Kotlin中写下空白函数的最佳方式是没有答案的。 例: ani.setAnimationListener(object: Animation.AnimationListener { override fun onAnimationRepeat(animation: Animation?) = Unit override fun onAnimationStart(animation: Animation?) {} override fun onAnimationEnd(animation: Animation?) = activity.runOnUiThread { loadLists() } }) 这里只使用AnimationListener(Android)的3个必要的方法之一。 应该使用哪种类型的空方法? 单个表达式 ( fun name() = Unit )或者Java中使用的传统方式( fun name() {} )? 我个人喜欢= Unit更多,因为这似乎意味着将功能缩短到一行的方式。 但是{}更短而更老,可能更难看。 有没有更好/更短的方式来做这个代码?

为什么只有接口可以委托给kotlin?

我看到过几个类似的问题,但没有一个解释为什么委托仅限于接口? 实际上大多数情况下,我们有一些实际上没有任何接口的东西,它是一个实现了一些功能或者实现一个抽象类的类。 是否有任何根本性的限制,迫使它仅限于接口,或者我们可以期望科林在将来有无限制的授权? 如果我们想使用组合不继承来扩展类的功能,这是特别有用的。 class A {} class B(val a: A) : A by a {}

为什么在Kotlin中删除了循环索引?

我仍然认为使用for循环的“传统”方法是非常强大的,并且完全控制索引。 为什么在Kotlin中删除? 我应该怎么做在kotlin下面的java代码 for (int i = 0; i < n – 1; i++) { for (int j = i + 1; j < n; j++) { ….

Kotlin的平台常见类是什么?

我想用Kotlin来定义客户端和服务器之间的接口。 目前,Kotlin可以用于3个平台:Java,Android,Web(JS)。 我可以在所有这些平台上使用哪些Kotlin嵌入式课程? 我希望kotlin-stdlib和kotlin-stdlib-js之间有一些通用的库依赖关系,但是找不到。 另一方面,我设法创建了以下可在所有3个平台上使用的界面: interface SomeApi { fun update(params: Collection<String>) } 那么,除了Collection之外,我怎样才能找出在所有平台上可以使用什么?

Kotlin班级代表团的特点

这就是我知道如何在Kotlin创建班级代表团: class CustomList<T>(private val data: ArrayList<T> = ArrayList<T>()) : List<T> by data 但是,我不想把数据放在构造函数中,因为我想在创建CustomList时列表为空: class CustomList<T> : List<T> by data { private val data = ArrayList<T>() } 这似乎并没有工作。 我怎样才能让data成为一个内部字段,并且将List委托给它的方法,而不必编写所有的委托方法?