小编H.s*_*ati的帖子

使用Kotlin学习Android MVVM架构组件

搜索了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

8
推荐指数
1
解决办法
4328
查看次数

如何导入和使用 android x 库

我想使用一个库来获取用户的日期。

我使用的项目需要添加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)

android android-gradle-plugin androidx

6
推荐指数
1
解决办法
6211
查看次数

如何在控制台中 console.log 一个大的彩色文本

我对 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)

html javascript jquery

4
推荐指数
1
解决办法
1752
查看次数

React-Navigation-5:同一屏幕中的多个MaterialTopTabNavigator

我正在将我的项目从 升级react-navigation-v4react-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)

react-native react-navigation react-navigation-v5

4
推荐指数
1
解决办法
1837
查看次数

绑定到 android 中的挂起函数

我想将按钮单击绑定到视图模型内的挂起函数。

这是我的代码:

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关键字并注释里面的代码时,它工作正常,但它必须是一个挂起的函数。

有谁知道如何修理它?

android kotlin android-databinding kotlin-coroutines

3
推荐指数
1
解决办法
5196
查看次数

在androidx中更改snackbar字体

在迁移到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

有什么帮助吗?

android android-snackbar androidx

2
推荐指数
1
解决办法
1277
查看次数

绑定 onTextChanged 用于编辑文本

我正在尝试将 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 android-databinding

1
推荐指数
1
解决办法
4344
查看次数