有没有办法禁用 Jetpack Compose 的 TextField 的所有交互?
android android-textinputlayout android-jetpack-compose android-compose-textfield
例如,我有一个 gradle 构建,如下所示:
signingConfigs {
configFlavor1 {
keyAlias 'alias1'
keyPassword 'password1'
storeFile file('location1')
storePassword 'password1'
v1SigningEnabled true
v2SigningEnabled true
}
configFlavor2 {
keyAlias 'alias2'
keyPassword 'password2'
storeFile file('location2')
storePassword 'password2'
v1SigningEnabled true
v2SigningEnabled true
}
configFlavor3 {
keyAlias 'alias3'
keyPassword 'password3'
storeFile file('location3')
storePassword 'password3'
v1SigningEnabled true
v2SigningEnabled true
}
}
flavorDimensions "dimen1", "dimen2"
productFlavors {
flavor1 {
dimension "dimen1"
}
flavor2 {
dimension "dimen1"
}
testing {
dimension "dimen2"
}
dev {
dimension "dimen2"
}
prod {
dimension "dimen2" …Run Code Online (Sandbox Code Playgroud) android gradle android-productflavors android-flavordimension android-signing
在 Android 上下文中,当收到响应时,决策点是否应该在 ViewModel 中,类似于我的 ViewModel:
if (response.isSuccess()) {
nextScreenLiveData.value = GO_TO_NEXT_SCREEN
} else if(response.isNeedAnotherScreen()) {
anotherScreenLiveData.value = ANOTHER_SCREEN
} else {
backToBeforeScreen = BACK_TO_BEFORE_SCREEN
}
Run Code Online (Sandbox Code Playgroud)
然后所有这些 LiveData 将在 Activity/Fragment 中被观察到。意味着每个 LiveData 有一个观察者。
或者最好在我的 ViewModel 中做这样的事情:
liveData.value = response
Run Code Online (Sandbox Code Playgroud)
然后在我的活动/片段中做出决定:
liveData.observe(this, Observer { response ->
if (response.isSuccess()) {
goToNextScreen()
} else if(response.isNeedAnotherScreen()) {
goToAnotherScreen()
} else {
goBack()
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢。
android mvvm android-viewmodel android-architecture-components android-jetpack
在 Android 中将所有内容都设为 RecyclerView 是个好主意吗?
如果您考虑一下,所有滚动 UI 都可以由具有多个 viewType 的 RecyclerView 组成。
这是好事还是坏事?
有人可以解释这两者之间到底有什么区别吗?
什么时候使用另一种?
提前致谢。
在 Android 中,由于性能问题,建议不要使用枚举。直到最近,情况仍然如此,Google IO 2018 中宣布枚举现在可以安全使用,尽管对于性能更高的应用程序仍然建议避免使用它们。
我的问题是:
我们可以在 android 中广泛使用 kotlin 密封类吗?
密封类似乎是枚举的扩展。如果是这样,我们应该使用类似于枚举的密封类吗?
提前致谢。
例如,我有一个改造界面,例如:
interface SampleService {
fun getSomething(@body someBody: SomeBody)
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个使用这个接口的类,例如:
class UserRequester(val service: SampleService) {
fun doGetSomething(someValue: String) {
val response = service.getSomething(SomeBody(someValue))
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我想测试这个类,但不知道如何模拟它。
我正在尝试以下操作:
val mockSampleService = mock()
val userRequester = UserRequester(mockSampleService)
val requestBody = SomeBody(someString))
when(mockSampleService.getSomething(requestBody)).return(myExpectedValue)
....
Run Code Online (Sandbox Code Playgroud)
我的问题是,由于我在函数内部创建了请求对象,因此我无法使模拟 when().thenReturn() 工作,因为我在技术上传递了两个不同的对象。
我应该如何测试这个?提前致谢。
因此,我正在创建这个应用程序,其中有大量个人信息和数据,这些信息和数据不应保留在设备中以避免安全问题。在了解 Room 时,我发现了这一点,Room.inMemoryDatabaseBuilder()正如文档所述:
为内存数据库创建 RoomDatabase.Builder。当进程被终止时,存储在内存数据库中的信息就会消失。一旦建立了数据库,您应该保留对它的引用并重新使用它。
我想知道这是否适合我的情况。由于数据只会存在于内存中,不会存储在设备中。
这似乎是个好主意。我唯一担心的是,我还没有在实际应用程序中看到它的实现。我看到的唯一用例Room.inMemoryDatabaseBuilder()是用于测试(因此您不必担心每次测试运行时的数据库清理)。
有人可以提供一些建议吗?我们将不胜感激。
非常感谢。
我正在试验 GitLab 的 CI/CD,并正在研究如何生成签名版本 APK。
我在这里阅读了这篇文章。
它提出了以下建议:
- ./gradlew assembleRelease
-Pandroid.injected.signing.store.file=$(pwd)/my.keystore
-Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD
-Pandroid.injected.signing.key.alias=$KEY_ALIAS
-Pandroid.injected.signing.key.password=$KEY_PASSWORD
Run Code Online (Sandbox Code Playgroud)
并将变量存储在 Gitlab CI/CD 变量中。
但是每次我运行管道时,它总是会导致:
* What went wrong:
Execution failed for task ':app:packageRelease'.
> 1 exception was raised by workers:
java.lang.RuntimeException: java.lang.RuntimeException:
com.android.ide.common.signing.KeytoolException: Failed to read key key0 from store "/tmp/Lp7GrQLJ/0/XXXXX/sample-android-project/keystore": Keystore was tampered with, or password was incorrect
Run Code Online (Sandbox Code Playgroud)
有人可以在这里指导我吗?我可能做错了什么?
I create an iOS app and added a framework to it. The generated framework doesn't have an assets folder like the generate Single View App. So I made an Assets folder inside the framework folder and drag and drop it to xcode, choose the target as my framework.
I tried using the asset but the asset doesn't show up. Can show one show me how to correctly do this? is it possible to create an assets folder inside a …
android ×8
android-architecture-components ×2
kotlin ×2
android-room ×1
enums ×1
gitlab ×1
gradle ×1
ios ×1
mockito ×1
mvvm ×1
performance ×1
retrofit2 ×1
sealed-class ×1
swift ×1
unit-testing ×1