Android是谷歌的移动操作系统,用于编程或开发数字设备(智能手机,平板电脑,汽车,电视,磨损,玻璃,物联网)。对于与Android相关的主题,请使用特定于Android的标签,如android-intent,android-activity,android-adapter等。对于开发或编程以外的问题,但与Android框架相关的问题,请使用以下链接:https:// android.stackexchange.com。
任何人都可以解释为什么 Tasker 不会看到从文件运行 JavaScript 吗? 我有一个简单的 JavaScript,可以向屏幕发出警报 代码: 警报(“你好,塔斯克世界!”); 我所得到的一切
art::ConditionVariable::WaitHoldingLocks(art::Thread*)
我们的移动应用程序已在 Google Play 商店中发布。崩溃和 ANR 报告在 Firebase Crashlytics 中生成。出现如下所示的ANR。 0 libc.so(系统调用+28) 1 libart.so(艺术::
更新到最新版本 Google Play Billing Library (7.1.1) 后 Android 6/5 用户的例外情况
最近我已将我的应用程序更新到最新的 Google Play 计费库 (7.1.1)。之后,当 Android 6 和 5 的用户尝试启动 bi 时,我在 Firebase crashlytics 中看到多次崩溃...
仪器测试无法在 Android 中找到标记有用于测试的字符串的节点
我正在尝试使用 .testTag 测试可组合项,该标签位于给定可组合项调用结构的树的叶级别。代码的风格是: 顶级可组合项 @可组合 有趣
使用 Firebase 的 Google Sigin 在内部测试轨道中不起作用
我正在使用 firebase Auth 使用 google 进行身份验证,当直接安装到模拟器或通过 apk 安装时,它可以正常工作。 但是在将其发布到Google Play的内部测试轨道后
如何让我的 Android 模拟器使用我计算机的 VPN 接口?
我的公司需要 VPN 连接到我们的开发系统,这是我第一次尝试在家中开发 Android 应用程序。 结果模拟器不想使用 VPN 接口,所以即使...
我知道可以使用WebView在Android应用程序上显示网站。我创建了一个 Android 应用程序,我想知道是否有办法将 Android 应用程序显示为网站。是
重新安装Android Studio并不会重新安装Android SDK
第一次安装没问题,Android Studio和SDK都安装正确了。后来我遇到了 SDK 的问题,不得不重新安装 Android Studio。但是当我尝试重新安装 Android St...
我想知道用 compose 处理 ui 状态的正确方法是什么 就性能而言,整个 UI 具有多个状态流还是只有一个状态流会更好吗? 例如...
如何在启动应用程序时隐藏 Android SplashScreen 或使其透明?
最近我在Android S上遇到了一个问题。当我启动我的应用程序时,它会在MainActivity之前显示一个启动屏幕,并且这个启动屏幕的颜色被设置为MainActivity的背景颜色......
我有 2 个视图,我需要在下面设置一个屏障,但该屏障无法按预期工作。 这是我的布局。 我有 2 个视图,我需要在下面设置一个屏障,但该屏障无法按预期工作。 这是我的布局。 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <TextView android:id="@+id/textView15" android:layout_width="0dp" android:layout_height="wrap_content" android:text="This is a text view" app:layout_constraintEnd_toStartOf="@+id/t1" android:textSize="20sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <com.google.android.material.textfield.TextInputLayout android:id="@+id/t1" android:layout_width="0dp" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/textView15" app:layout_constraintTop_toTopOf="parent"> <com.google.android.material.textfield.TextInputEditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is a demo text to check wrap content"/> </com.google.android.material.textfield.TextInputLayout> <androidx.constraintlayout.widget.Barrier android:layout_width="wrap_content" android:layout_height="wrap_content" app:barrierDirection="bottom" app:constraint_referenced_ids="textView15,t1"/> </androidx.constraintlayout.widget.ConstraintLayout> 黑色虚线是屏障。 这可能是一个错误或者我做错了,预览和实际设备中的结果是相同的 如果您指定 app:layout_optimizationLevel="none" 在ConstraintLayout的XML中,您会发现障碍物将被正确放置。我不确定设置优化级别能达到什么效果,但最近这是一个有障碍的问题。 (ConstraintLayout 版本 2.1.3)。 这是抑制优化之前布局的样子。如前所述,屏障上升到右侧 TextView。 我们通过在 XML 中声明而不进行其他更改来抑制优化: <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" app:layout_optimizationLevel="none" xmlns:app="http://schemas.android.com/apk/res-auto"> 现在布局如下所示: 障碍物已降至其所属的右侧TextView下方。 这是与 ConstraintLayout 版本 2.1.3 一起使用的。 implementation 'androidx.constraintlayout:constraintlayout:2.1.3' (似乎将优化级别设置为除standard之外的任何值都可以解决此问题。) 添加 app:layout_constrainedHeight="true" 障碍引用的视图解决了我的问题。 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <TextView android:id="@+id/textView15" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="visible" android:text="This is a text view" app:layout_constraintEnd_toStartOf="@+id/t1" android:textSize="20sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <com.google.android.material.textfield.TextInputLayout android:id="@+id/t1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="visible" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/textView15" app:layout_constraintTop_toTopOf="parent"> <com.google.android.material.textfield.TextInputEditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is a demo text to check wrap content"/> </com.google.android.material.textfield.TextInputLayout> <androidx.constraintlayout.widget.Barrier android:id="@+id/barrier" android:layout_width="wrap_content" android:layout_height="wrap_content" app:barrierDirection="bottom" app:constraint_referenced_ids="textView15,t1"/> <Space android:id="@+id/space" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="visible" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/barrier" /> </androidx.constraintlayout.widget.ConstraintLayout> 正如之前所写,ConstraintLayout 2.1.3 和 2.1.4 版本无法正常工作,您可以将其降级到 2.0.0。如果没有,您可以使用两种方法。在这两种情况下都删除 <androidx.constraintlayout.widget.Barrier>。 插入LinearLayout以占据所需的视图。例如,如果水平位置有 2 个 TextInputLayout,则可以这样写: <LinearLayout android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/upper_view"> <com.google.android.material.textfield.TextInputLayout android:id="@+id/input_layout_1" android:layout_weight="1" ... <com.google.android.material.textfield.TextInputLayout android:id="@+id/input_layout_2" android:layout_weight="1" ... </LinearLayout> 如果您有具有不同视图的复杂布局,请这样写。 <Space android:id="@+id/space" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="@id/input_layout_2" app:layout_constraintTop_toBottomOf="@+id/upper_view" /> 那么你应该在代码中更改 Space 高度。也许您可以将此代码应用于所有TextInputLayout。 // View size change listener private fun View.onSizeChange(callback: () -> Unit) { addOnLayoutChangeListener(object : OnLayoutChangeListener { override fun onLayoutChange( view: View?, left: Int, top: Int, right: Int, bottom: Int, oldLeft: Int, oldTop: Int, oldRight: Int, oldBottom: Int, ) { view?.removeOnLayoutChangeListener(this) if (right - left != oldRight - oldLeft || bottom - top != oldBottom - oldTop) { callback() } } }) } binding.inputLayout2.onSizeChange { // First remove bottom constraint val layoutParams = binding.space.layoutParams as ConstraintLayout.LayoutParams layoutParams.bottomToBottom = ConstraintLayout.LayoutParams.UNSET // Now set height of a <Space> (maximum of two TextInputLayouts) val h1 = binding.inputLayout1.height val h2 = binding.inputLayout2.height binding.inputLayout2.postDelayed({ binding.space.updateLayoutParams { height = max(h1, h2) } }, 1) } 然后将底部视图绑定到 LinearLayout 或 Space 而不是 Barrier。 仅需要 app:layout_optimizationLevel="barrier"。 如果我们使用 app:layout_optimizationLevel="none" 布局渲染可能需要更长的时间,因为每个约束都会被更彻底地重新评估。对于复杂的布局,这可能会导致性能问题。
Android Studio - 部署我的应用程序而不进行新的更改
我的问题基本上是 Android Studio 不会使用我对新代码的更改来部署我的应用程序。这是我的案例场景: 我有一个像这样工作的 wifi direct 代码(只是用它的方法进行测试):...
使用System.getProperty("os.arch")检查是否是armeabi cpu
我在一些旧的 4.2.2- 设备(galaxy s3 mini、galaxy ace 3、galaxy fresh 等)上遇到 RenderScript 的以下问题 - Android - Renderscript 支持库 - 加载 RS jni 库时出错...
Android Studio 中从 gradle 7 升级到 gradle 8 无法同步 gradle 文件
我的应用程序使用 Gradle 7.X(和适当的 AGP)构建得很好。 当仅将 gradle 和 AGP 升级到 8.0 时(使用最新的 8.X 时也是如此),我无法再同步。 以下...
我想将文本放在卡片的底部,并用半透明的颜色模糊文本区域。 这是我到目前为止所拥有的。 我想要实现的设计是这样的。 (有卡片规格的收藏区...
fasterxml jackson 支持 kotlin 多平台吗?
我正在将我的 Android 应用程序迁移到多平台,并且我有一个带有四个子类的抽象类。 @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "t...
我已经创建了新模块,并想使用 local.properties 中的数据对其进行配置。 我想进口 导入 com.android.build.gradle.internal.cxx.configure.gradleLocalProperties 或者 我...
我正在使用 Stackoverflow 上的上一个问题,使用 jetpack compose 中视图库的 DatePicker 来实现轮日期选择器。 我在导航到下一页之前得到的结果。 我导航后...
flutter 中的错误:渲染库捕获异常,每个子元素必须精确布局一次
这是我的 GameScreen.dart 代码: 导入'包:flutter/material.dart; 导入“dart:数学”; 导入“包:guess_my_number/welcome_text.dart”; 类 GameScreen 扩展 StatefulWidget {
我正在使用 kotlin 开发 Android SDK (AAR)。我使用 NDK 和 CMake 在 Androis SDK 中使用一些 cpp 代码。一旦我构建了 AAR,其他开发人员就会在他们自己的 Android 应用程序上使用我的 AAR...