小编use*_*924的帖子

如何使用Material 3进行滑动(拉动)刷新?

val pullRefreshState = rememberPullRefreshState(loadStatus is LoadState.Loading, onRefresh = {
    photosResponse.refresh()
})
Box(
    modifier
        .fillMaxSize()
        .pullRefresh(pullRefreshState)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我已将材料 2 更新为材料 3:

api(libs.androidx.compose.material3) // group = "androidx.compose.material3", name = "material3"
Run Code Online (Sandbox Code Playgroud)

但现在无法使用滑动刷新,没有任何东西可以导入

android android-jetpack-compose android-jetpack-compose-material3

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

每个约束项都必须是视图或布局指南

我正在尝试在 UIViewController 底部添加一个 Admob 横幅:

func addBannerViewToView() {
    bannerView = GADBannerView(adSize: kGADAdSizeBanner)
    bannerView.adUnitID = "ca-app-pub-HIDDEN/HIDDEN"
    bannerView.rootViewController = self
    bannerView.delegate = self
    bannerView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(bannerView)
    view.addConstraints(
        [NSLayoutConstraint(item: bannerView,
                            attribute: .bottom,
                            relatedBy: .equal,
                            toItem: view.safeAreaLayoutGuide.bottomAnchor,
                            attribute: .top,
                            multiplier: 1,
                            constant: 0),
         NSLayoutConstraint(item: bannerView,
                            attribute: .centerX,
                            relatedBy: .equal,
                            toItem: view,
                            attribute: .centerX,
                            multiplier: 1,
                            constant: 0)
        ])
    bannerView.load(GADRequest())
}
Run Code Online (Sandbox Code Playgroud)

我调用了这个函数,viewDidLoad但应用程序崩溃了:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“NSLayoutConstraint for >:每个约束项都必须是视图或布局指南。”

我使用了一个官方示例https://developers.google.com/admob/ios/banner

admob ios

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

Android Studio 4.2 - Kotlin 1.5.0 版错误和无休止地加载项目结构窗口中的建议

这是什么意思?

在此处输入图片说明

在此处输入图片说明

我尝试更改ext.kotlin_version = '1.5.0'为,ext.kotlin_version = '1.5.0-release-764' 但在这种情况下,gradle 项目无法构建Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0-release-764.

更新 ext.kotlin_version = '1.5.0'- 也不起作用,同样的错误和警告

构建.gradle:

buildscript {
    ext.kotlin_version = '1.5.0'

    repositories {
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
    }
}
Run Code Online (Sandbox Code Playgroud)

gradle-wrapper.properties:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
Run Code Online (Sandbox Code Playgroud)

无法解析配置 ':classpath' 的所有工件。找不到 org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0。在以下位置搜索: - https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.5.0/kotlin-gradle-plugin-1.5.0.pom 如果您尝试检索的工件可以在存储库中找到,但没有 'Maven POM' 格式的元数据,则需要调整存储库声明的 'metadataSources { ... }'。

更新 2

我不得不添加mavenCentral()以使其工作,虽然警告仍然存在但它构建

如果 4.2 版本在更新一个依赖项的版本后在“项目结构”窗口中无限加载建议,那么另一个问题

在此处输入图片说明

android-gradle-plugin android-studio-4.2

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

ImageView 的 Cardview 阴影

在此处输入图片说明

(1 个屏幕截图 - ImageView 可见性可见,2 个屏幕截图 - 消失)

使用ImageViewwith时,CardView我们可以说阴影根本不可见(尤其是在智能手机显示屏上)

<android.support.v7.widget.CardView
    android:id="@+id/ImageViewWrapper"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:elevation="0dp"
    android:layout_margin="10dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:cardCornerRadius="6dp">

    <android.support.v7.widget.AppCompatImageView
        android:id="@+id/ImageView"
        android:visibility="visible"
        android:background="@color/black_1000"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        app:srcCompat="@drawable/ic_folder"/>

</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

android:elevation 没有任何影响(0dp、5dp 或 20dp - 没有任何变化),所以我只是将其设置为 0dp

我们可以控制这个cardview shadow,让它更强/更大/更厚吗?

3 屏幕截图 - 这里是视频缩略图 ImageView 的 MX Player 应用示例(https://play.google.com/store/apps/details?id=com.mxtech.videoplayer.ad

在此处输入图片说明

更新

我设置 app:cardElevation="7dp"app:cardUseCompatPadding="true" 没有进展......cardUseCompatPadding并使我的图像高度变小,现在我的左/右有黑条

在此处输入图片说明

android android-imageview android-cardview

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

带 Jetpack Compose 导航的 Hilt

我检查了此信息https://developer.android.com/jetpack/compose/libraries#hilt-navigation如何注入ViewModel撰写屏幕。

现在我为我的测试应用程序实现了这样的:

NavHost(
    navController = navController,
    startDestination = startDestination,
    modifier = modifier
) {
    composable(Screen.Topics.name) {
        val parentEntry = remember { navController.getBackStackEntry(Screen.Topics.name) }
        val topicsViewModel = hiltViewModel<TopicsViewModel>(parentEntry)
        TopicsScreen(
            topicsViewModel = topicsViewModel,
            openDrawer = openDrawer,
            navigateToTopicDetails = { topic -> actions.navigateToTopicsDetails(topic) }
        )
    }
    ...
Run Code Online (Sandbox Code Playgroud)

如果我使用会有什么不同吗

val parentEntry = remember { navController.getBackStackEntry(Screen.Topics.name) }
val topicsViewModel = hiltViewModel<TopicsViewModel>(parentEntry)
Run Code Online (Sandbox Code Playgroud)

要不就

val topicsViewModel = hiltViewModel<TopicsViewModel>()
Run Code Online (Sandbox Code Playgroud)

我想只有当我们使用嵌套图并且我们想要获取特定图范围的 ViewModel 时才需要第一个https://developer.android.com/jetpack/compose/navigation#nested-nav

因此,在我的情况下,如果我不使用嵌套图,两种方法的范围是相同的?

那么我可以只用hiltViewModel<TopicsViewModel>()在我的情况下吗?

android android-jetpack-compose dagger-hilt jetpack-compose-navigation

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

Android Studio 4.0.1 (Linux Mint) 中没有文档

我没有得到任何描述。我重新安装了 Android Studio,删除了整个 android 配置文件和缓存,但仍然没有帮助。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

android-studio android-studio-4.0

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

android.text.format.Formatter.formatFileSize() 返回错误的格式

这里我比较了Android内置方法来格式化文件和自定义来自/sf/answers/391988971/

\n
Timber.d(\n    "Format file size using Formatter.formatFileSize " +\n            "${Formatter.formatFileSize(this, 1_000_000_000L)}, " +\n            "${Formatter.formatFileSize(this, 1_073_741_824L)}"\n)\n\nTimber.d(\n    "Format file size using readableFileSize " +\n            "${readableFileSize(1_000_000_000L)}, " +\n            "${readableFileSize(1_073_741_824L)}"\n)\n
Run Code Online (Sandbox Code Playgroud)\n

\n
fun readableFileSize(size: Long): String? {\n    if (size <= 0) return "0"\n    val units = arrayOf("B", "kB", "MB", "GB", "TB")\n    val digitGroups = (log10(size.toDouble()) / log10(1024.0)).toInt()\n    return DecimalFormat("#,##0.#").format(size / 1024.0.pow(digitGroups.toDouble()))\n        .toString() + " " + units[digitGroups]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这是结果:

\n
Format file size using Formatter.formatFileSize 1,00\xc2\xa0GB, 1,07\xc2\xa0GB\nFormat file size using readableFileSize …
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
0
解决办法
792
查看次数

指定为非空的参数pendingDynamicLinkData为空

private fun getReferralId() {
    Firebase.dynamicLinks
        .getDynamicLink(intent)
        .addOnSuccessListener(this) { pendingDynamicLinkData ->
            pendingDynamicLinkData?.link?.getQueryParameter(
                DEEP_LINK_QUERY_PARAM_REFERRAL_ID
            )?.let { refId ->
                viewModel.saveReferralId(refId)
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

java.lang.NullPointerException:指定为非空的参数为空:方法kotlin.jvm.internal.Intrinsics.checkNotNullParameter,参数pendingDynamicLinkData位于app.package.activity.MainActivity.getReferralId$lambda-2(未知来源:7)在应用程序.package.activity.MainActivity.$r8$lambda$ANLS0uCuXrQe7RFQ5b0C-RFsBKE(未知来源:0)在app.package.activity.MainActivity$$ExternalSyntheticLambda3.onSuccess(未知来源:4)

版本:

implementation platform("com.google.firebase:firebase-bom:28.3.1")
implementation "com.google.firebase:firebase-dynamic-links-ktx"
Run Code Online (Sandbox Code Playgroud)

这里有什么问题吗?

更新

当我更新 play-services-auth 库的版本时会发生这种情况

implementation "com.google.android.gms:play-services-auth:19.2.0"
implementation "com.google.android.gms:play-services-auth-api-phone:17.5.1"
Run Code Online (Sandbox Code Playgroud)

到最新版本

implementation "com.google.android.gms:play-services-auth:20.0.0"
implementation "com.google.android.gms:play-services-auth-api-phone:18.0.0"
Run Code Online (Sandbox Code Playgroud)

这有什么关系呢?

android firebase firebase-dynamic-links

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

未捕获的类型错误:无法读取未定义的属性(读取“本地”)

我正在将扩展从清单 2 迁移到清单 3。

有时我会收到以下错误:

未捕获的类型错误:无法读取未定义的属性(读取“本地”)

在这样的线上

chrome.storage.local.get('timeSync', function(result) {
    timeSync = result.timeSync;
});
Run Code Online (Sandbox Code Playgroud)

我的content_script.js

还有其他无意义的错误(也只是有时发生,mb 仅在 chrome://extensions/ 重新加载扩展时发生,我不确定):

在此输入图像描述

google-chrome-extension chrome-extension-manifest-v3

6
推荐指数
0
解决办法
6802
查看次数

无法调用类的无参数构造函数。向 Gson 注册此类型的 InstanceCreator 可能会解决此问题

java.lang.RuntimeException: Unable to invoke no-args constructor for class com.arch.example.network.models.NetworkPagingList. Registering an InstanceCreator with Gson for this type may fix this problem.\n                    at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:228)\n                    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212)\n                    at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:40)\n                    at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)\n                    at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:243)\n                    at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:153)\n                    at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)\n                    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)\n                    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)\n                    at java.lang.Thread.run(Thread.java:1012)\n                 Caused by: java.lang.UnsupportedOperationException: Abstract class can't be instantiated! Class name: com.arch.example.network.models.NetworkPagingList\n                    at com.google.gson.internal.UnsafeAllocator.assertInstantiable(UnsafeAllocator.java:120)\n                    at com.google.gson.internal.UnsafeAllocator$1.newInstance(UnsafeAllocator.java:49)\n                    at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:225)\n                    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212)\xc2\xa0\n                    at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:40)\xc2\xa0\n                    at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:27)\xc2\xa0\n                    at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:243)\xc2\xa0\n                    at retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:153)\xc2\xa0\n                    at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519)\xc2\xa0\n                    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)\xc2\xa0\n                    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)\xc2\xa0\n                    at java.lang.Thread.run(Thread.java:1012)\xc2\xa0\n
Run Code Online (Sandbox Code Playgroud)\n

实体:

\n
import …
Run Code Online (Sandbox Code Playgroud)

android gson android-gradle-plugin android-r8

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