Articles of android support library

NullPointerException:int android.support.v4.app.FragmentManagerImpl.mCurState null object object reference

我用Android L更新了我的应用程序,我有这个例外我无法理解: NullPointerException:尝试从空对象引用上的字段’int android.support.v4.app.FragmentManagerImpl.mCurState’读取 有人可以帮帮我吗? 在build.gradle中: dependencies { compile files(‘libs/libGoogleAnalyticsServices.jar’) compile ‘com.android.support:support-v4:21.0.3’ compile ‘com.android.support:appcompat-v7:21.0.3’ compile ‘com.google.android.gms:play-services:6.5.87’ } 堆栈跟踪: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lucagrillo.myapp/com.lucagrillo.myapp.MainActivity}: android.view.InflateException: Binary XML file line #23: Error inflating class fragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) […]

Android IntentCompat makeRestartActivity在2.3中没有任何作用

我在清除整个活动堆栈和运行新活动时遇到问题。 在我的应用程序中,用户可以导航到其配置文件并关闭其会话。 屏幕堆栈如下: StartActivity(自动完成,因此不会保留在堆栈中)> MainActivity> UserProfileActivity 当用户单击“从配置文件注销”时,它应该打开StartActivity,这将显示注册屏幕。 我们的想法是清除所有活动堆栈,因此用户无法继续注销: UserProfileActivity> StartActivity(并且堆栈中没有任何其他内容) 我尝试了一种基于IntentCompat makeRestartActivity的解决方案,该解决方案应该从启动器图标启动时启动所需的活动。 它在Android 4. +中完美运行,但它在Android 2.3上无效。 代码如下(取自此链接 ): Intent intentToBeNewRoot = new Intent(UserProfileActivity.this, StartActivity.class); ComponentName cn = intentToBeNewRoot.getComponent(); Intent mainIntent = IntentCompat.makeRestartActivityTask(cn); startActivity(mainIntent); 我在这里看到了另一种解决方案,基本上用一些标志创建一个intent: Intent intent = new Intent(getApplicationContext(), StartActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent); finish(); 这似乎有效,但是在按下StartActivity之后,它又返回到MainActivity(存在于堆栈中),如果没有登录,它应该是不可用的。 那么,有没有办法清除整个活动堆栈,适用于所有Android版本?

无法安装android支持存储库修订版35

我正在尝试从命令行(Linux)升级我的sdk。 跑完之后 android update sdk –no-ui 我可以在终端上看到包下载和安装消息,但实际上它没有安装。 当我运行android list sdk命令时,请参阅可用于安装的相同软件包,如下所示: 可用于安装或更新的软件包:1 1- Android支持信息库,修订版35 有人可以帮助我,我可能在这里失踪了吗? 注意:我确实尝试了android update sdk –no-ui –filter 1但安装后结果相同。

在支持库中设置FloatingActionButton的边框颜色

在支持库中引入了FloatingActionButton 。 可以选择使用app:borderWidth=”2dp”设置按钮的边框宽度,但是如何设置边框颜色? 我为该porpuse创建了一个自定义drawable,例如: 并尝试使用android:background和app:backgroundTint FloatingActionButton的app:backgroundTint属性来设置背景。 他们没有工作。 请注意,app:backgroundTint似乎只是为了接受颜色而不是可绘制的 有人知道任何解决方法吗?

如何在选项卡顶部显示选项卡指示器

我按照本教程 。 我做了一个简单的更改,在屏幕底部显示TabLayout 。 activity_main.xml中 问题:- TabIndicator在屏幕底部显示效果很好,现在我想在Tabs的顶部而不是底部显示TabIndicator 。 使用自定义布局我们可以像教程中提到的那样做,但是有没有任何xml属性会在顶部显示TabIndicator ?

当水平RecyclerView作为垂直RecyclerView中的项目放置时,自动滚动即将发生

为了复制问题,我克隆了一个现有项目并添加了两个片段。 所以现在有一个带有ViewPager的Activity ,它有2个片段。 每个Fragment都有一个RecyclerView (垂直),其中包含多个RecyclerView项(水平)。 现在的问题是当中间点水平RecyclerView位于顶部时,切换选项卡上的垂直RecyclerView的自动滚动。 例如: 第1页滚动到此位置 (请注意,第一个H-Recycler视图设置为仅一半可见) 然后点击tablayout上的第2页,转到第2页。 现在再次点击tablayout上的第1页返回页面1.此处预期的滚动位置是我们之前离开的位置,但它会自动滚动到顶部位置。 喜欢这个 (第一个RecyclerView完全可见,而不是一半。) 在找出解决方案时,我得到了一些线索。 v24.1.1和v24.2.1的库(在编写本文时最新)会出现此问题,但当它降级到v23.4.0时,它会按预期工作。 所以很明显,库中的某些东西被修改导致了这种行为。 与包含webview的项目遇到相同的问题。 webView和H-recyclerView之间的共同点是两者都可以在内部水平滚动。 问题可能与滚动事件的消耗有关。

android.support.v7.graphics.Palette的宽度和高度必须> 0

我有一些使用新Palette类的代码,我在Crashlytics上得到这些崩溃报告,说width and height must be > 0 。 奇怪的是,这就是我调用调色板代码的方式: if( bitmap == null || bitmap.getHeight() <= 0 || bitmap.getWidth() <= 0){ //do something }else{ Palette.Builder(bitmap).generate(new Palette.PaletteAsyncListener() { ….. } 所以我只是不确定位图突然没有正确的高度或宽度。 我不知道我的代码中的哪一部分来自exception,因为报告只包含调色板类中的内容。 这是例外: java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:300) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818) Caused by: […]

支持库v25.0.0animation中的底部导航视图?

参考:Nick Butcher的推文https://twitter.com/crafty/status/789008273949200384 我实现了底部导航视图 ,推出了Android Support Library v25.0.0 。 https://github.com/vipulasri/Bottom-Navigation-View-Sample 我面临以下问题: Floating Action Button与Bottom Navigation View重叠。 Snackbar显示在Bottom Navigation View上方。 滚动时底部导航按钮不会自动隐藏或显示。 无法获得如下的揭示animation :

gradle如何处理具有不同支持库v4版本的多个模块?

我有一个Android项目,它依赖于不同的模块,每个模块依赖于android support-v4库的不同版本 1)我的应用程序还依赖于最新的android support-v4库(修订版21)所以在这个build.gralde中我放了一行: dependencies { compile ‘com.android.support:support-v4:21.0.0’ } 2)Facebook SDK(v.3.15)模块也依赖于android支持库v4,但是版本13及其build.gradle文件说: dependencies { compile ‘com.android.support:support-v4:13.0.+’ compile files(‘../libs/bolts.jar’) } 3)还有一个模块,在这种情况下我们可以调用Module3,也取决于support-v4,但是与其他模块的修订版本不同,如下所示: dependencies { compile ‘com.android.support:support-v4:19.0.+’ compile files(‘../libs/bolts.jar’) } 问题: 1)gradle如何处理不同的support-v4库修订版? 2)它究竟做了什么? 3)就apk大小而言,它是什么意思?

viewHolder.getAdapterPosition()始终返回-1

由于某种原因,我无法使用holder.getAdapterPosition()因为它总是返回-1但holder.getLayoutPosition()返回一个位置就好了。 我的onCreateViewHolder: @覆盖 public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View v = LayoutInflater.from(parent.getContext()) .inflate(R.layout.my_item, parent, false); ViewHolder vh = new ViewHolder(this, v); return vh; } 我的ViewHolder构造函数: public ViewHolder(DirectoryListAdapter adapter, View linear) { super(linear); this.adapter = adapter; this.linear = (LinearLayout) linear; this.entryName = (TextView) linear.findViewById(R.id.item_name); this.entryImage = (ImageView) linear.findViewById(R.id.item_image); } […]