代表Android支持库的新Android扩展库(AndroidX)。
所以,问题陈述是我想实现一个功能,用户可以根据需要在列表中添加和删除任意数量的项目。我想到在每个视图中使用带有 edittext 的 RecyclerView,然后...
Android Studio:在我的 Android 应用程序中使用 cloudinary 时无法解析:com.linkedin.android.litr:litr:1.1.0
我正在构建使用 Cloudinary 上传图像和视频的 Android 应用程序。我在前端和后端都使用 AndroidX。我拥有所有相关的依赖项,例如实现“com”。
无法使用转换 JetifyTransform 转换文件“some-lib-release.aar”以匹配属性 {artifactType=processed-aar}
我有一个包含 2 个模块的项目:一个具有构建类型调试、发布和企业的应用程序 (Java),以及该应用程序使用的 Kotlin 库(发布和调试)。 我正在使用 AndroidX 并有以下内容...
在 gradle 7.0+ 中同步 jitpack.io(更改 settings.gradle)并面对错误
同步以下代码后: 设置.gradle >> 插件管理{ 存储库{ gradlePluginPortal() 谷歌() mavenCentral() } } 依赖解决方案管理...
Android 资源链接失败:使用 external_app_launcher 找不到 android:attr/lStar
使用 external_app_launcher 包时,我在 Flutter 项目中遇到构建问题。构建失败并出现以下错误: 任务 ':external_app_launcher:
INSTALL_FAILED_CONFLICTING_PROVIDER
安装未成功。 无法安装应用程序:INSTALL_FAILED_CONFLICTING_PROVIDER 这个错误已经困扰我两个小时了。我已经核对了 FileProv 的实现...
我想使用系统照片选择器(即使用 PickVisualMedia 请求)向用户请求照片,然后发送另一个 Intent 让照片编辑器裁剪照片。如果我只是重新发送 URI...
使用 AndroidX 命名空间自定义 ListPreference 的最简单方法
我到处搜索这个问题,发现很多答案无法编译,或者使用已弃用的 API。 这确实是一件简单的事情,我认为应该被纳入核心......
androidx.legacy:legacy-support-v4:依赖有什么用
我正在实现 Android Room 数据库,在其中一篇教程中我发现了 androidx.legacy:legacy-support-v4:1.0.0 依赖项的用法。谁能告诉我这个依赖项的用法吗?
我们目前正在通过新的 Splashscreen API 实现闪屏。我们正在遵循迁移指南。背景颜色设置正确(通过windowSplashScreenBackground),但是ico...
从 Fabric 升级到 Firebase 后出现错误“无法创建任务 ':app:injectCrashlyticsMappingFileIdFlavorXDebug”
我更新了一个旧的 Android 应用程序以停止使用 Fabric,而是使用 Firebase 分析和 crashlytics 我必须更新我正在使用的 gradle 版本,并将应用程序升级到
我正在使用 chrome 自定义选项卡将支付网关集成到 Android 应用程序中。在支付网关内部,我必须提供 payment_success_redirect url 和 payment_fail_redirect 来表示失败。
使用 EncryptedSharedPreferences 给出错误协议消息包含无效标签(零)
在真实设备上执行此代码时 字符串 masterKeyAlias = masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC); SharedPreferences 设置 = EncryptedSharedPreferences.create...
错误 CS0246 找不到类型或命名空间名称“Androidx”(您是否缺少 using 指令或程序集引用?)
我正在将 Xamarin.Android 应用程序从 Andorid 9 迁移到 Android 10。我已将所有支持包更新为 Andoridx 包。 在更改 android.support.v7.widget 后的 .axml 文件中。
尝试在空对象引用上调用虚拟方法“void androidx.lifecycle.ViewModel.clear()”
因此,在我的应用程序的最后几个版本中,Firebase Crashlytics 报告 androidX 生命周期库中的 ViewModelStore 类崩溃。我使用的生命周期库的版本是2.0.0...
cardBackgroundColor 和 cardCornerRadius 在 AndroidX 中不起作用
我正在努力解决 AndroidX 库的 CardView 角半径和背景颜色问题。 我的布局定义如下: 我正在努力解决 AndroidX 库的 CardView 角半径和背景颜色问题。 我的布局定义如下: <?xml version="1.0" encoding="utf-8"?> <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="@dimen/retail_card_width" card_view:cardCornerRadius="@dimen/card_radius" card_view:cardBackgroundColor="@color/baseYellow" android:layout_height="@dimen/retail_card_height"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" tools:src="@drawable/ic_fruit_1" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" android:scaleType="fitEnd" app:layout_constraintTop_toTopOf="parent"/> <ImageView android:id="@+id/ivRetailBrand" android:layout_width="@dimen/brand_icon_size" android:layout_height="@dimen/brand_icon_size" tools:src="@drawable/esselunga" android:layout_marginTop="@dimen/retail_brand_margin" android:background="@drawable/round_outline" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" android:layout_marginStart="@dimen/retail_brand_margin"/> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.cardview.widget.CardView> 不幸的是,cardCornerRadius和cardBackgroundColor似乎都不适用于我的布局。我不明白我的问题是否依赖于 AndroidX 库。 这是我的布局预览: 我在清单文件中删除了这一行,之后我的卡片视图工作得很好 android:硬件加速=“假” 尝试将 CardView 修改为: <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="@dimen/retail_card_width" app:cardCornerRadius="@dimen/card_radius" app:cardBackgroundColor="@color/baseYellow" android:layout_height="@dimen/retail_card_height"> 我也有类似的问题。我通过将 CardView 包装在 FrameLayout 中解决了这个问题。 补充答案: 或者您可以尝试使用“app”命名空间而不是“card_view”: app:cardBackgroundColor="@color/background_color" app:cardCornerRadius="@dimen/corner_radius" 事实证明,问题是我将cardview androidx库与支持recyclerview库混合在一起。一旦我重建项目: implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'androidx.cardview:cardview:1.0.0' 一切都很好。 我可能会迟到,但让我将来可以节省别人的时间。我的 Android Studio preview 上遇到了这个问题,并意识到问题是 CardView 内的内容不是 clipped 到 CardView 的边界,所以你看到的角是 ImageView 的角,实际上是被剪裁的当您在模拟器/设备上运行应用程序时。 我希望这有帮助! 我认为这与 CardView 设置无关。 检查您的 ImageView,它们可能是角不圆化的原因。 注释掉图像视图代码(整个 ConstraintLayout)并检查 UI。因为我过去也遇到过同样的问题。 尝试清理并重建项目。这对我有用.. 好吧,所以我遇到了同样的问题,这些建议都没有解决我的问题。我通过 cardview.setBackgroundColor(color) 设置卡片的背景颜色: ,而不是cardview.setCardBackgroundColor() 。卡视图包含一个嵌入式对象卡,卡是附加角半径的位置。因此,在 CardView.Card 之外设置颜色将不会按预期渲染角半径。希望这有帮助。 您可以创建一个新的可绘制文件 round_corner_colored.xml 并将以下代码粘贴到该文件中: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/light_sky_blue"/> <corners android:radius="@dimen/_12sdp"/> </shape> 现在将此drawable设置为cardview的背景: android:background="@drawable/round_corner_colored" 希望对你有帮助!! 有些品牌在首次安装应用程序时强制Dark mode,这将影响视图的着色,并且在 CardView 中应用颜色将被忽略。您可以将此应用到您的主题中以防止此类事件发生。 <item name="android:forceDarkAllowed" tools:targetApi="q">false</item> 对我来说,它在预览中没有正确显示。但它在设备上正确显示。存在一些渲染问题。我在android studio中一直遇到这样的问题。 Android Studio 4.2.1 (Mac) 中面临的问题 对我来说这很有效 <androidx.cardview.widget.CardView android:layout_width="wrap_content" android:layout_height="wrap_content" app:cardBackgroundColor="@color/white" app:contentPadding="@dimen/_10sdp" app:cardCornerRadius="20dp" app:cardUseCompatPadding="true" android:layout_marginStart="@dimen/_20sdp" android:layout_marginTop="@dimen/_10sdp"> <androidx.appcompat.widget.AppCompatTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/low" android:textColor="@color/text_color_blue" android:textSize="@dimen/_11ssp" android:textStyle="normal" /> </androidx.cardview.widget.CardView> 对我来说,MaterialCardView的问题是,当我直接将其放入 XML 布局中时,cardBackgroundColor没有效果,例如这不起作用: <com.google.android.material.card.MaterialCardView style="@style/Widget.Material3.CardView.Elevated" android:layout_width="match_parent" android:layout_height="wrap_content" app:cardBackgroundColor="#FFFF00"> 解决方案是覆盖 styles.xml 中的主题并在那里指定它,例如: <style name="MyApp.MyCardView" parent="Widget.Material3.CardView.Elevated"> <item name="cardBackgroundColor">#FFFF00</item> </style> 然后,您在属性中指定样式:style="@style/MyApp.MyCardView"并且它可以工作。这是有道理的......这种行为迫使我们采用良好的做法。 我在应用程序级别 gradle 中将 compileSdkVersion 从 28 升级到 29,问题解决了。 compileSdkVersion 29
找不到满足版本约束的'androidx.annotation:annotation'版本:运行androidTests时出错
我最近迁移到了 androidX 并将我的 targetSdkVersion 更新为 29。之后,我在尝试运行 androidTests 时收到错误: 找不到“androidx.annotation:annotation”的版本...
如何在不使用 NavController 将片段添加到后台堆栈的情况下导航片段?
NavController 具有导航方法,默认情况下使用 Backstack 进行导航。如何在没有后退堆栈的情况下导航到片段? 请注意,我不是在询问 FragmentTransaction
.NET MAUI Android 应用程序由于与 AndroidX 依赖项相关的 Java 错误而无法构建
我正在将 Xamarin.Forms 应用程序迁移到 .NET MAUI 中,并修复了各种问题和错误,最后一个问题是通过添加两个引用解决的: Xamarin.AndroidX.Collection Xamarin.AndroidX.收集...
为什么使用AndroidX时嵌套的PreferenceScreen打不开?
我正在使用 AndroidX 的首选项库来管理我的应用程序的设置。我的 SettingsFragment 派生自 PreferenceFragmentCompat 并加载以下布局: 我正在使用 AndroidX 的首选项库来管理我的应用程序的设置。我的 SettingsFragment 源自 PreferenceFragmentCompat 并加载以下布局: <androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <androidx.preference.PreferenceScreen android:key="screen_backup_key" android:title="@string/local_database"> <androidx.preference.Preference android:key="button_save_key" android:title="@string/export" /> <androidx.preference.Preference android:key="button_load_key" android:title="@string/_import" /> </androidx.preference.PreferenceScreen> <androidx.preference.Preference android:key="screen_about" android:title="@string/about" /> </androidx.preference.PreferenceScreen> 布局显示正确,但是当我单击嵌套的 PreferenceScreen 条目时,没有任何反应。它以前可以与 支持库 中的 PreferenceScreen 一起使用,但现已弃用。 我希望看到这个嵌套的内容PreferenceScreen。我做错了什么? AndroidX 的首选项库不再支持它。 使用 a 声明同一 XML 资源中的嵌套层次结构 不再支持嵌套 PreferenceScreen。你应该使用 而是嵌套的 Fragment 对象。 每个单独的屏幕都需要一个单独的 PreferenceFragmentCompat。 如果您有大量偏好或不同类别,您 可以将它们显示在单独的屏幕上。每个屏幕应该是一个 PreferenceFragmentCompat 有自己独立的层次结构。优先 然后,您的初始屏幕上可以链接到包含以下内容的子屏幕: 相关首选项。 你这样做: 要将屏幕与首选项链接,您可以在中声明 app:fragment XML,或者您可以使用 Preference.setFragment()。设置完整包 启动时应启动的 PreferenceFragmentCompat 的名称 点击Preference,如下图: <Preference app:fragment="com.example.SyncFragment" .../> 这是进一步阅读的来源。 嵌套 ScreenPreference 无法在 AndroidX 中开箱即用。下面是一个处理嵌套 ScreenPreference 的 PreferenceActivity 替换示例。类似的方法可以仅用于片段。 注意以下事项: 活动布局没有利用大屏幕或可折叠设备。 片段不会持续存在(因此,如果屏幕旋转,它将返回到第一个首选项片段)。 只能调用一次addPreferencesFromResource()。 以下是如何使用它来替换 PreferenceActivity 作为基类: 将 PreferenceActivity 替换为 PreferenceActivityEx。 将 AppCompatActivity 兼容主题添加到 AndroidManifest.xml 中的继承 Activity。例如:android:theme="@style/Theme.AppCompat"。 将任何 androidx.preference 导入替换为 androidx.preference。 将 addPreferencesFromResource() 方法中的 onCreate() 调用之后处理首选项的代码移至新的覆盖 onPreferencesCreated() 方法。 activity_preference_ex.xml: <?xml version="1.0" encoding="utf-8"?> <androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/preferences_container" android:layout_width="match_parent" android:layout_height="match_parent" /> PreferenceActivityEx.java: import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; public class PreferenceActivityEx extends AppCompatActivity { private RootPreferenceFragmentCompatEx mPreferencesFragment; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_preference_ex); } @Override protected void onResume() { super.onResume(); if (mPreferencesFragment == null) throw new IllegalStateException("Must call 'addPreferencesFromResource()' in the 'onCreate()' method."); } protected Preference findPreference(@NonNull CharSequence key) { if (mPreferencesFragment == null) throw new IllegalStateException("Must call 'addPreferencesFromResource()' before 'findPreference()'"); return mPreferencesFragment.findPreference(key); } protected PreferenceScreen getPreferenceScreen() { if (mPreferencesFragment == null) throw new IllegalStateException("Must call 'addPreferencesFromResource()' before 'getPreferenceScreen()'"); return mPreferencesFragment.getPreferenceScreen(); } protected void onPreferencesCreated() { } protected void addPreferencesFromResource(int preferencesResId) { if (mPreferencesFragment != null) throw new IllegalStateException("Only a single call to addPreferencesFromResource() is allowed."); mPreferencesFragment = new RootPreferenceFragmentCompatEx(preferencesResId); mPreferencesFragment.setOnPreferencesCreatedListener(this::onPreferencesCreated); getSupportFragmentManager().beginTransaction() .replace(R.id.preferences_container, mPreferencesFragment) .commit(); } public static abstract class PreferenceFragmentCompatEx extends PreferenceFragmentCompat { @Override public boolean onPreferenceTreeClick(@NonNull Preference preference) { if (preference instanceof PreferenceScreen) { PreferenceScreen preferenceScreen = (PreferenceScreen) preference; // Create a new fragment to display the nested PreferenceScreen NodePreferenceFragmentCompatEx fragment = new NodePreferenceFragmentCompatEx(preferenceScreen); // Use the FragmentManager to replace the current fragment with the nested one getParentFragmentManager().beginTransaction() .replace(getId(), fragment) .addToBackStack(null) .commit(); return true; } return super.onPreferenceTreeClick(preference); } } public static class NodePreferenceFragmentCompatEx extends PreferenceFragmentCompatEx { private PreferenceScreen mPreferenceScreen; public NodePreferenceFragmentCompatEx() { } public NodePreferenceFragmentCompatEx(PreferenceScreen preferenceScreen) { mPreferenceScreen = preferenceScreen; } @Override public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { if (mPreferenceScreen != null) setPreferenceScreen(mPreferenceScreen); } } public static class RootPreferenceFragmentCompatEx extends PreferenceFragmentCompatEx { private int mPreferencesResId; private OnPreferencesCreatedListener mOnPreferencesCreatedListener; public RootPreferenceFragmentCompatEx() { } public RootPreferenceFragmentCompatEx(int preferencesResId) { mPreferencesResId = preferencesResId; } private void setOnPreferencesCreatedListener(OnPreferencesCreatedListener onPreferencesCreatedListener) { mOnPreferencesCreatedListener = onPreferencesCreatedListener; } @Override public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { if (mPreferencesResId != 0) { setPreferencesFromResource(mPreferencesResId, rootKey); if (mOnPreferencesCreatedListener != null) mOnPreferencesCreatedListener.onPreferencesCreated(); } } } private interface OnPreferencesCreatedListener { void onPreferencesCreated(); } }