Articles of appcompat

Android vectorDrawables.useSupportLibrary = true正在停止应用

如果我在gradle中使用vectorDrawables.useSupportLibrary = true ,那么不幸地运行它停止的应用程序。 如果我删除vectorDrawables.useSupportLibrary = true,该应用程序可以正常工作。 我的朋友: apply plugin: ‘com.android.application’ android { compileSdkVersion 25 buildToolsVersion “25.0.2” defaultConfig { vectorDrawables.useSupportLibrary = true applicationId “com.helikanon.firstapp” minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } } dependencies { compile fileTree(include: [‘*.jar’], dir: ‘libs’) androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2’, […]

使用AppCompat v7 r21获取ActionBar标题TextView

我有一个库,需要使用TextView的颜色作为ActionBar标题。 在AppCompat v7 r21之前,我可以findViewById并直接从视图中获取颜色。 但是,由于某些原因现在不起作用。 视图始终为null。 我编写了解析整个视图层次结构的代码,并打印出所有TextView的ID,types和值。 标题视图没有ID,我觉得很奇怪。 我注意到的一件事是当我试图获取ActionBar时返回的是工具栏(即使我没有在我的应用程序中使用工具栏)。 所以我迭代了工具栏的子视图,每当发现TextView时,我将其文本值与toolbar.getTitle()进行比较,以确保我正在寻找的TextView。 不理想,我不确定它是否适用于所有情况。 有谁知道什么是最安全的解决方案?

如何使用support.v7.preference与AppCompat和潜在的缺点

我正在尝试使用support.v7.preference实现AppCompat应用程序的首选项。 我花了几天时间来完成它,因为support.v7.preference与本机偏好有一些显着的差异……一旦你知道,这并不是太糟糕,但不幸的是那里没有很少的文档。 我以为我会分享我的发现,所以其他人不必经历同样的痛苦。 所以……问题: 您如何最好地实现AppCompat应用程序的首选项(PreferenceFragment和AppCompatAcitivity不兼容)? 以下是一些相关问题: 使用support.v7.preference时,首选项子屏幕无法打开 如何从PreferenceFragmentCompat中的Preferences子屏幕移回主屏幕? PreferenceFragmentCompat需要设置preferenceTheme 如何使用android.support.v7.preference库创建自定义首选项? 官方文件: http://developer.android.com/guide/topics/ui/settings.html http://developer.android.com/reference/android/support/v7/preference/Preference.html

Android studio的AppcompatActivity错误

在使用Android studio构建Android应用程序时出现此错误: 24192-24192/com.mkapp.apps.demo1 W/dalvikvm﹕ VFY: unable to find class referenced in signature (Landroid/os/PersistableBundle;) 08-20 10:53:23.605 24192-24192/com.mkapp.apps.demo1 I/dalvikvm﹕ Could not find method android.support.v7.app.AppCompatActivity.onCreate, referenced from method com.mkapp.apps.demo1.TourActivity.onCreate 08-20 10:53:23.605 24192-24192/com.mkapp.apps.demo1 W/dalvikvm﹕ VFY: unable to resolve virtual method 8393: Landroid/support/v7/app/AppCompatActivity;.onCreate (Landroid/os/Bundle;Landroid/os/PersistableBundle;)V 08-20 10:53:23.605 24192-24192/com.mkapp.apps.demo1 D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000 我的依赖: compile ‘com.android.support:support-v4:22.2.1’ compile ‘com.google.android.gms:play-services:7.3.0’ compile […]

Switchcompat没有显示Switch

我正在尝试使用我的应用程序中为材料设计更新的最新appcompat,以显示Lollipop中显示的切换视图( http://android-developers.blogspot.in/2014/10/appcompat-v21-material-design -for-pre.html ),问题是交换机没有显示出来。 我的SDKmin是14,最大值是21.我在布局中使用以下代码: 的build.gradle: dependencies { compile ‘com.android.support:cardview-v7:+’ compile ‘com.android.support:recyclerview-v7:+’ compile ‘com.android.support:palette-v7:+’ compile ‘com.android.support:support-v4:+’ compile “com.android.support:appcompat-v7:21.0.+” compile fileTree(dir: ‘libs’, include: [‘*.jar’]) }

不使用appcompat库时应该使用android:showAsAction

我有一个奇怪的问题,我在我的Android应用程序中使用menu.xml文件,如下所示: 它工作得很好,但几天前我正在将我的eclipse更新到最后一个版本,之后,app:showAsAction =“always”显示错误: 不使用appcompat库时应该使用android:showAsAction,之后我的操作栏图标被移动到溢出栏而根本没有显示在操作栏中。 无论如何,appcompat库是我的基本样式的父级。 我该怎么做才能解决这个问题?

崩溃:java.lang.NoClassDefFoundError:android.support.v7.appcompat.R $ layout

我的应用程序的某些用户遇到此崩溃,似乎可能与三星设备有关。 有没有其他人遇到过这个问题并find了解决方案? java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$layout at android.support.v7.app.ActionBarActivityDelegateBase.ensureSubDecor(ActionBarActivityDelegateBase.java:297) at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:225) at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102) at com.afollestad.impression.ui.MainActivity.onCreate(MainActivity.java:160) at android.app.Activity.performCreate(Activity.java:5451) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2359) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2453) at android.app.ActivityThread.access$900(ActivityThread.java:173) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5579) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) at dalvik.system.NativeStart.main(NativeStart.java) 第160行设置活动的内容视图。 内容视图是这样的: 该片段是一个简单的列表片段。

KitKat及以下的VectorDrawableCompat Resources $ NotFoundException

当我启用 vectorDrawables.useSupportLibrary = true 我在KitKat和以下设备上获得了很多resourceNotFoundExceptions。 我得到了这个用于NavigationView for Menus以及用于带有app:srcCompat的ImageViews android.content.res.Resources$NotFoundException: Resource ID #0x7f02006b at android.content.res.Resources.getValue(Resources.java:2305) at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:268) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:178) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173) at android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:421) at android.support.v7.view.menu.ActionMenuItemView.initialize(ActionMenuItemView.java:114) at android.support.v7.widget.ActionMenuPresenter.bindItemView(ActionMenuPresenter.java:206) at android.support.v7.view.menu.BaseMenuPresenter.getItemView(BaseMenuPresenter.java:182) at android.support.v7.widget.ActionMenuPresenter.getItemView(ActionMenuPresenter.java:192) at android.support.v7.widget.ActionMenuPresenter.flagActionItems(ActionMenuPresenter.java:480) at android.support.v7.view.menu.MenuBuilder.flagActionItems(MenuBuilder.java:1138) at android.support.v7.view.menu.BaseMenuPresenter.updateMenuView(BaseMenuPresenter.java:91) at android.support.v7.widget.ActionMenuPresenter.updateMenuView(ActionMenuPresenter.java:229) at android.support.v7.view.menu.MenuBuilder.dispatchPresenterUpdate(MenuBuilder.java:284) at android.support.v7.view.menu.MenuBuilder.onItemsChanged(MenuBuilder.java:1030) at android.support.v7.view.menu.MenuBuilder.startDispatchingItemsChanged(MenuBuilder.java:1053) at android.support.v7.app.AppCompatDelegateImplV7.preparePanel(AppCompatDelegateImplV7.java:1345) at android.support.v7.app.AppCompatDelegateImplV7.doInvalidatePanelMenu(AppCompatDelegateImplV7.java:1583) at android.support.v7.app.AppCompatDelegateImplV7.access$100(AppCompatDelegateImplV7.java:89) at android.support.v7.app.AppCompatDelegateImplV7$1.run(AppCompatDelegateImplV7.java:128) at android.os.Handler.handleCallback(Handler.java:733) at […]

AppCompat工具栏:在ActionMode中更改溢出图标颜色

使用AppCompat工具栏,我希望能够在ActionMode更改时更改溢出菜单图标的颜色。 例如,在正常工具栏模式下,溢出图标将为白色。 并且会在ActionMode上变黑。 到目前为止,我已经设法改变了动作模式的背景以及标题文本。 但我还没有find一种方法来改变溢出菜单图标的颜色。 我知道有一个答案: 更改ActionMode Overflow图标 我尝试了第一个解决方案,但我无法find溢出图标。 第二种解决方案,即使延迟50L,也会导致溢出菜单图标闪烁ActionMode的预期颜色,短时间内非常刺耳。

CoordinatorLayout中的ViewPager意外收缩

在我在Android 5.1.1上运行的Android应用中,我使用带有TabLayout的Toolbar进行布局,下面是ViewPager 。 所有这些都放在CoordinatorLayout 。 在ViewPager的第一页是一个RecyclerView服务CardView项目。 我的问题是我的ViewPager不断resize,以便裁剪我的CardView列表项。 我的主要布局看起来基本上像这样: 我的ViewPager服务的第一个片段如下所示: 这会呈现如下所示的内容: 单击布局中的按钮时,我使用startActivityForResult来调用另一个活动,并且在返回到我的活动时, 有时突然我的列表被裁剪,以便只有第一个项目的一半可见: 在ViewPager水平滑动到另一个寻呼机然后返回后,问题就消失了,所以看起来似乎没有正确触发重新布局。 按HOME然后恢复我的活动并不能解决问题。 请注意,即使我没有以任何方式修改我的布局,也会发生这种情况,我只是从startActivityForResult调用返回。 是的,它有时只会发生……而且我没有运行的后台线程可以解释明显的随机行为。 起初我以为它已经缩小了RecyclerView ,但是使用HierarchyViewer我发现它实际上是整个ViewPager缩小到其原始高度的一半左右。 我试过各种各样的黑客来解决这个问题,包括在我的整个视图hiearchy上调用invalidate()和requestLayout() ,但似乎没有任何帮助(虽然刷到另一个页面并再次修复它)。 另外,那些不是我想要求解的那种解决方案……然后我尝试将我的ViewPager高度更改为wrap_content ,这实际上解决了这个特殊问题; 返回我的活动后,我的RecyclerView的第一个项目永远不会被裁剪,我可以向下滚动到其他项目。 但是,现在我的列表中的最后一项始终被裁剪,如此截图中可以看到列表一直滚动到底部: 由于我现在处于一个我不太了解正在发生的事情的地步,我需要一些帮助。 我应该将什么用作我的ViewPager的layout_height,以及 – 首先 – 为什么? 对我来说, match_parent是有道理的,但我该如何思考呢? 在使用match_parent ,我的观点是否有合理的理由被裁剪,或者我实际上遇到了ViewPager , RecyclerView和/或CoordinatorLayout ? 如何确保我的ViewPager始终填充AppBar下方的整个屏幕区域,并且我的RecyclerView可以垂直滚动以正确呈现所有CardView列表项?