搜索了android体系结构组件后,我意识到MVVM在某些方面要优于其他体系结构,因此我开始学习MVVM,并且我使用的是Kotlin语言,但问题是当我搜索教程以开始学习时,发现了很多组件,例如RxJava, RxAndroid,Dagger2,Room,Lifecycle等,但他们没有说明为什么要使用它们以及为什么要选择某些特定组件。我会给你看一些例子:
1-具有Dagger2,翻新,RxJava的Android MVVM
2-具有Dagger2,翻新,RxAndroid的Android MVVM
3-带有MVVM dagger2 RxJava Livedata和Room的Android应用
我的问题是:
1-我应该如何决定选择其中一些组件并与之一起使用?
2-我怎么知道我需要一起使用其中的一些(例如Livedata和RxJava)?
这对我来说真的很混乱,我不知道如何开始。
android design-patterns kotlin android-mvvm android-architecture-components
我想使用一个库来获取用户的日期。
我使用的项目需要添加AndroidX库中的库和类。
一旦我通过添加模块或向 gradle 添加直接命令来添加此项目,就会出现以下错误:
使用的项目链接: https: //github.com/wdullaer/MaterialDateTimePicker
错误 :
Failed to resolve: androidx.appcompat:appcompat:1.0.2
Failed to resolve: androidx.recyclerview:recyclerview:1.0.0
Run Code Online (Sandbox Code Playgroud)
构建.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.**********"
minSdkVersion 14
targetSdkVersion 28
versionCode 1
versionName "1.0"
}
buildToolsVersion '28.0.3'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
}dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:support-vector-drawable:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0' …Run Code Online (Sandbox Code Playgroud) 我对 javascript、HTML 还很陌生...我已经对 HTML 有了足够的了解,但不太了解 js (一点基础知识)我想将控制台中的一些信息告诉进入控制台的人在我的网站上,我知道你显然必须 console.log 登录,但我想将其设计得像不和谐一样,如果你转到https://discordapp.com/并转到控制台,你可以看到类似于这张图片的内容
我该怎么做呢?
console.log("Some text to be displayed in the console");
Run Code Online (Sandbox Code Playgroud) 我正在将我的项目从 升级react-navigation-v4到react-navigation-v5. 我需要在同一屏幕内有两个顶部栏,将屏幕分为两半,但这样做会出现此错误:
错误:已为此容器注册另一个导航器。您可能在单个“导航容器”或“屏幕”下有多个导航器。确保每个导航器位于单独的“屏幕”容器下。
我搜索了很多,我知道我可以嵌套它们,但是如何将它们一起使用?
这是我的代码,给出了错误:
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import Page1 from './pages/Page1'
import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
const TopTab = createMaterialTopTabNavigator();
const BottomTab = createMaterialTopTabNavigator();
const TopTabComponent = () => (
<TopTab.Navigator>
<TopTab.Screen name='1' component={Page1} />
<TopTab.Screen name='2' component={Page1} />
</TopTab.Navigator>
)
const BottomTabComponent = () => (
<BottomTab.Navigator>
<BottomTab.Screen name='3' component={Page1} />
<BottomTab.Screen name='4' component={Page1} />
</BottomTab.Navigator>
)
export default class App extends React.Component {
render() …Run Code Online (Sandbox Code Playgroud) 我想将按钮单击绑定到视图模型内的挂起函数。
这是我的代码:
RegistrationActivityViewModel.kt
suspend fun register() {
if (validateFields()) {
val result = SourceplusplusApiService.invoke().registerUser(username.value!!, email.value!!, password.value!!).await()
isRegistrationCompleted.value = getResultValue(result)
}
}
Run Code Online (Sandbox Code Playgroud)
活动注册.xml
<Button
android:text="Register"
android:onClick="@{()->viewmodel.register()}"
android:textSize="16sp" />
Run Code Online (Sandbox Code Playgroud)
我收到一个数据绑定错误,提示ActivityRegistrationBindingImpl未生成。经过大量搜索后,我意识到当我删除suspend关键字并注释里面的代码时,它工作正常,但它必须是一个挂起的函数。
有谁知道如何修理它?
在迁移到androidx之前,我使用以下代码更改了快餐栏文本的字体:
Snackbar snackbar = Snackbar.make(main_Coordinator, "No Connection", Snackbar.LENGTH_INDEFINITE);
View view = snackbar.getView();
TextView textView = view.findViewById(android.support.design.R.id.snackbar_text);
textView.setTypeface(Typeface.createFromAsset(getAssets(), "Shabnam.ttf"));
Run Code Online (Sandbox Code Playgroud)
但是在迁移到androidx之后,我得到了错误,android.support.design.R.id.snackbar_text它表示的快餐栏ID Cannot resolve symbol design。
而且我正在使用新的设计库 com.google.android.material:material:1.0.0
有什么帮助吗?
我正在尝试将 edittext 绑定onTextChanged到视图模型。
这是我的 XML:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewmodel"
type="mvvm.f4wzy.com.samplelogin.ui.login.viewmodel.LoginViewModel" />
</data>
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="text"
android:onTextChanged="@{viewmodel.onEmailChanged}"
android:paddingStart="5dp"
android:textColor="#383838"
android:textSize="20sp"/>
</layout>
Run Code Online (Sandbox Code Playgroud)
LoginViewModel.kt
class LoginViewModel(application: Application) : AndroidViewModel(application) {
fun onEmailChanged(s: CharSequence) {
//some code
}
}
Run Code Online (Sandbox Code Playgroud)
kapt 给我一个关于文本更改的错误,它说:
[kapt] 发生异常:android.databinding.tool.util.LoggedErrorException:发现数据绑定错误。****/ 数据绑定错误 ****msg: 无法解析 viewmodel.onEmailChanged 的类型
我已经尝试过android:onTextChanged="@{(s) -> viewmodel.onEmailChanged}",android:onTextChanged="@{viewmodel::onEmailChanged}"但仍然出现同样的错误。
有什么帮助吗?
android ×5
androidx ×2
kotlin ×2
android-architecture-components ×1
android-mvvm ×1
html ×1
javascript ×1
jquery ×1
react-native ×1