小编use*_*158的帖子

DSL 元素“android.dataBinding.enabled”已过时并已替换为“android.buildFeatures.dataBinding”

构建项目时收到以下警告

DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'.
Run Code Online (Sandbox Code Playgroud)

我在用 Android Studio Canary 6

android android-databinding

186
推荐指数
5
解决办法
7万
查看次数

如何同时使用导航抽屉和底部导航 - 导航架构组件

我有如下屏幕,其中在同一屏幕上包含导航抽屉和底部导航:

应用程序屏幕

我正在使用 Jetpack 导航架构组件。

当前问题和我尝试了什么?

单击第二个和第三个底部导航项会在工具栏上显示后退箭头吗?

尝试过:将与第二和第三底部导航相关的片段设置为顶级目的地

appBarConfig = AppBarConfiguration(setOf(R.layout.fragment_star, R.layout.fragment_stats, R.layout.fragment_user))
Run Code Online (Sandbox Code Playgroud)

代替

appBarConfig = AppBarConfiguration(navController.graph, drawerLayout)
Run Code Online (Sandbox Code Playgroud)

没有工作。

任何帮助高度赞赏!


我的代码如下所示。

活动_main.xml

<?xml version="1.0" encoding="utf-8"?>
<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <androidx.drawerlayout.widget.DrawerLayout
        android:id="@+id/drawerLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

            <fragment
                android:id="@+id/navHostFragment"
                android:name="androidx.navigation.fragment.NavHostFragment"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                app:defaultNavHost="true"
                app:navGraph="@navigation/nav_graph" />

            <com.google.android.material.bottomnavigation.BottomNavigationView
                android:id="@+id/bottomNav"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:background="?android:attr/windowBackground"
                app:menu="@menu/menu_bottom" />

        </LinearLayout>

        <!-- gives navDrawer material look-->
        <com.google.android.material.navigation.NavigationView
            android:id="@+id/navView"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:menu="@menu/nav_drawer_menu"
            app:headerLayout="@layout/nav_header"
            android:fitsSystemWindows="true"
            />
    </androidx.drawerlayout.widget.DrawerLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

menu_bottom.xml

<?xml version="1.0" encoding="utf-8"?> …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack android-architecture-navigation

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

此版本的Android Studio 无法打开此项目,请使用Android Studio 4.0 或更高版本重试

我在 Android Studio 中打开了我的项目canary 4,然后我决定在stable version 3.5.1 现在我收到以下消息。

此版本的Android Studio 无法打开此项目,请使用Android Studio 4.0 或更高版本重试。

我试过以下

  1. 删除.gradle, .idea, gradle/,project.iml
  2. 使缓存失效
  3. 关闭并重新导入项目
  4. agp和更改Kotlin为以前的版本。

看来我必须坚持使用4.0。

android android-studio android-studio-4.0

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

xcode 上的 Flutter 音频播放器插件错误(未找到模块“音频播放器”)

当我在 iOS 上测试它时它工作正常但是当我尝试在 XCode 上存档时它给了我以下错误:

找不到模块“音频播放器”

我使用音频播放器 0.13.5

正如您从我的 pubspec 文件中看到的,我有最新的 flutter,一切正常,但我不知道为什么会出现此错误。

我还尝试了很多类似以下解决方案的事情:

brew install cocoapods
pod setup
Run Code Online (Sandbox Code Playgroud)

我还删除了iOS文件夹并重新安装。

我的pubspec.yaml

    name: mohammad
description: A new Flutter project.

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying …
Run Code Online (Sandbox Code Playgroud)

xcode ios dart flutter

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

使用AWS AppSync vs Firestore进行可扩展聊天应用程序的优缺点是什么?

我打算开发一个可扩展的聊天应用程序作为项目的一部分,该项目是移动应用程序,希望扩展到Web。我来考虑以下选项

目前,我在移动应用程序中将Firebase用于其他用途(身份验证等)。

我的发现:

  • Firebase文档非常友好,并且可以用更少的时间轻松上手。

  • 根据我的计算,使用Firestore似乎比AppSync便宜(AppSync + DynamoDB的成本与Firestore的成本)

  • 根据docs,Firestore中存在某些限制。

  • AppSync使用GraphQL,因此可以更精细地访问数据。

我搜索了AppSync和Cloud Firestore之间的比较,但没有发现任何很好的深入比较。

使用AWS AppSync vs Firestore进行可扩展聊天应用程序的优缺点是什么?

scalability chat google-cloud-firestore aws-appsync

8
推荐指数
0
解决办法
1320
查看次数

即使使用 android:inputType="textPassword" EditTextPreference 也不会屏蔽密码

我有以下代码

<androidx.preference.PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android">

        <EditTextPreference
            app:key="pref_password"
            app:title="Password"
            app:iconSpaceReserved="false"
            app:dialogTitle="Password"
            android:inputType="textPassword"/>

</androidx.preference.PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

但是编辑文本字段没有用点掩盖,即使 android:inputType="textPassword"

我正在使用 androidx。任何人请帮忙

更新

我尝试按照评论者的建议进行操作,但没有运气

<EditTextPreference
            android:key="pref_password"
            android:title="Password"
            app:iconSpaceReserved="false"
            android:dialogTitle="Password"
            android:inputType="textPassword"/>
Run Code Online (Sandbox Code Playgroud)

android android-preferences android-jetpack

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

Cloudflare Worker 请求上下文中的 CPU 时间和 Wall time 是多少?

如果您在免费计划中看到 Cloudflare Workers 的定价部分,他们有以下内容

每个请求最多 10ms CPU 时间

并在以下付费计划中

每个请求最多 30 秒的挂机时间

通常,执行一个执行有用操作的脚本需要超过 10 毫秒的时间。根据任务的不同,甚至 30 秒的墙上时间也可能很短。

如果您查看 Worker 的文档限制:CPU 运行时部分,它有

大多数 Worker 请求消耗的时间不到一毫秒。很少能找到正常运行的 Workers 脚本超出 CPU 时间限制的情况。免费计划中的工作人员最多可消耗 10 毫秒,付费计划中的捆绑工作人员最多可消耗 50 毫秒。付费计划还提供长达 30 秒的持续时间,以增加计算时间。免费计划的 10 毫秒津贴足以满足大多数用例(包括应用程序托管)的执行时间。

Workers 脚本的实际运行时间没有限制。只要发送请求的客户端保持连接,Workers 脚本就可以继续处理、发出子请求并代表该请求设置超时。当客户端断开连接时,与该客户端请求关联的所有任务都将被取消。您可以使用 event.waitUntil() 将取消再延迟 30 秒,或者直到传递给 waitUntil() 的 Promise 完成。

虽然就 CPU 时间的一般意义而言,本文中提到的 Wall time正确的。我不认为这在这种情况下是准确的含义,因为在链接的帖子中,CPU 时间是内核或用户空间中的代码执行时间。

CPU time per request与 AWS Lambda 中的代码执行 CPU 时间也不相似,因为它提到了以下内容

Workers 脚本的实际运行时间没有限制。

因此脚本的实际运行时间(即:CPU 执行时间)并不像 AWS Lambda 中那样限制为 15 分钟。

然后

  • Cloudflare 工作线程中每个请求 …

cloudflare cloudflare-workers

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

ktlint 作为 detekt 中的格式化程序

我正在使用 detekt 和 ktlint 来格式化我的代码,如下所示。

detekt.gradle

ext{
    toolVersion = "1.0.0-RC16"
}
detekt {
    input = files(...)

    filters = ".*/resources/.*,.*/build/.*"
    baseline = file("${project.rootDir}/tools/detekt-baseline.xml")
    reports{
        html{
            enabled = true
        }
        xml{
            enabled = false
        }
    }
    config = files(file("$project.rootDir/tools/detekt.yml"))
}

dependencies {
    detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:$toolVersion"
}
Run Code Online (Sandbox Code Playgroud)

检测基线.yml

autoCorrect: true

build:
  maxIssues: 10
  weights:
  # complexity: 2
  # LongParameterList: 1
  # style: 1
  # comments: 1
Run Code Online (Sandbox Code Playgroud)

项目级build.gradle

buildscript {
    ext{...}
    repositories {...}
    dependencies {...}
}

plugins{
    id "io.gitlab.arturbosch.detekt" version "1.0.0-RC16"
}

apply from: …
Run Code Online (Sandbox Code Playgroud)

android android-gradle-plugin detekt

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

如果片段包含 AppBarLayout,BottomNavigationView 不会在片段内滚动时隐藏

我在 Android 中使用 coordinatorLayout 在片段内滚动和检测它时遇到很多问题。我有一个包含 3 个片段的“MainActivity”。在其中一个片段中,我有一个应用栏,当滚动片段时它会折叠。我已经设法做到了这一点,但如果我设置滚动行为以允许这样做,我的 BottomNavigationView (位于 mainactivity.xml 中)不会对滚动做出反应。代码是这样的:

片段1.xml

<android.support.design.widget.CoordinatorLayout
...
...>
    <android.support.design.widget.AppBarLayout
 ...
 ...>
        <android.support.design.widget.CollapsingToolbarLayout
                 app:layout_scrollFlags="scroll|exitUntilCollapsed"
   ...>
            <android.support.v7.widget.Toolbar
     .../>
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

   <android.support.v4.widget.NestedScrollView
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
   </android.support.v4.widget.NestedScrollView>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

MainActivity.xml

<android.support.design.widget.CoordinatorLayout
.../>
    <FrameLayout
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
 .../>
    <android.support.design.widget.BottomNavigationView
      app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
.../>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

现在,这已经足够好了,因为当我在片段内滚动时,我的 AppBar 会折叠到标题中(这就是我想要的),但我的 BottomNavigationView 对滚动没有反应。

我发现如果我添加这一行

app:layout_behavior="@string/appbar_scrolling_view_behavior"
Run Code Online (Sandbox Code Playgroud)

在 AppBarLayout xml 声明中,我让 BottomView 在滚动事件上折叠(当我向上滚动时,它会再次显示)。所以基本上要么我有能力折叠片段内的应用程序栏,要么当我检测到片段内的滚动事件时我有能力隐藏 BottomNavigationView。

任何形式的帮助将不胜感激。

android scroll android-appbarlayout bottomnavigationview

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

为什么 VS Code 中不再报告 Missing key prop 错误?

eslint-plugin-react用于在 JSX 中迭代列表时缺少 prop时在 VS Code 中key抛出警告/错误,但它不再执行此操作。(浏览器控制台中抛出错误。)

缺少keyprop 的代码示例(从 React beta 文档分叉)

import { people } from './data.js';
import { getImageUrl } from './utils.js';

export default function List() {
  const chemists = people.filter(person =>
    person.profession === 'chemist'
  );
  const listItems = chemists.map(person =>
    <li>
      <img
        src={getImageUrl(person)}
        alt={person.name}
      />
      <p>
        <b>{person.name}:</b>
        {' ' + person.profession + ' '}
        known for {person.accomplishment}
      </p>
    </li>
  );
  return <ul>{listItems}</ul>;
}
Run Code Online (Sandbox Code Playgroud)

.eslintrc

{
  "extends": [
    "react-app",
    "plugin:react/recommended"
  ],
  "rules":{ …
Run Code Online (Sandbox Code Playgroud)

reactjs eslint visual-studio-code

5
推荐指数
0
解决办法
349
查看次数