Articles of android support library

支持库从23.1.1升级到25.1.0后,popBackStack()行为会有所不同

从Android支持库23.1.1升级到最新的25.1.0 ,我们的应用程序中popBackStack()的行为发生了变化。 例如,我在BackStack上有三个FragmentTransactions 。 现在第四个FragmentTrsansaction被添加到BackStack。 FragmentTransactions是这样的: FragmentTransaction transaction = fragmentManager.beginTransaction() .replace(R.id.fragment_container_single, target, CoreActivity.FRAGMENT_TAG_LEFT) .addToBackStack(<CONCRETE_TRANSACTION_NAME>) .commit(); 片段#4具有逻辑,它在onViewCreated()期间自动路由到片段#5(我知道,这是丑陋的,我必须改变这一点)。 无论如何,当我想离开片段#5时,我想恢复到片段#4之前显示的片段。 我通过事务名称来做到这一点: getFragmentManager().popBackStack(“<CONCRETE_TRANSACTION_NAME_4>”, FragmentManager.POP_BACK_STACK_INCLUSIVE); 或这个: getFragmentManager().popBackStack(“<CONCRETE_TRANSACTION_NAME_3>”, 0); 但是通过这个调用,将调用片段#4的onCreateView()和onViewCreated() ,片段#5将被立即添加到BackStack。 即使我恢复到片段#1 onViewCreated()被称为每个片段BackStack – 片段#2,片段#3和片段#4,即使他们无关紧要的FragmentTransaction我想返回。 在支持库23.1.1我成功跳回到片段#3。 片段#4被popup而不调用onViewCreated() 。 这似乎更直观,对我来说是正确的,因为调用onViewCreated()的碎片“我的FragmentTransaction外”的碎片似乎是不必要的? 我知道, addToBackStack()只保存事务状态,而不是碎片本身,碎片可能不得不被重新创build。 有类似的post ,但我想明白为什么它支持库更新后中断。 我找不到任何地方的变化。 这是一个错误还是现在是一个错误? 我将继续改变我的代码。 感谢帮助! 更新升级到support-library 25.1.0后,我有更多的生命周期问题/更改。 有一个谷歌的问题 ,我额外评论我的问题。 目前我不得不回到最新的24.2.1,并关注这个话题。 这只是我的临时解决scheme。 这些问题从support-library 25.0.0开始。

瞄准api 21(Android 5.0)及更高版本时,片段与支持片段

Android仪表板显示只有一半的设备具有Android 5.0及更高版本,但数字看起来与我们的客户数据集有所不同 – 它超过了我们用户的93%。 所以我们决定放弃对Android版本低于5.0的设备的支持,并将minSdkVersion从15改为21。 此升级要求我们审查所有过时的function,并清理我们应用于支持旧版本的一些hacky解决方法。 我们现在可以应用的主要function之一是用android.app.Fragmentreplaceandroid.app.Fragment 。 这听起来是个好主意,特别是当我们知道片段API已被审查和改进 。 只是为了确保我会采取正确的道路和android.app.fragment不会让我感到惊讶我想从这个stackoverflow线程解释问题 – 是否使用来自支持库的片段,即使它们已经可用,何时为Android 5开发? 在Android 5.0及以上版本中发生的碎片API中是否存在任何错误,并在支持库中修复?

AppCompat DayNight主题不适用于Android 6.0?

我正在使用Android Support Library 23.2添加的新的Theme.AppCompat.DayNight 在Android 5.1上运行良好。 在Android 6.0上,活动看起来像使用轻量级主题,但使用深色主题进行对话。 我的应用程序类: public class MyApplication extends Application { static { AppCompatDelegate.setDefaultNightMode( AppCompatDelegate.MODE_NIGHT_YES); } } 我的styles.xml <style name="AppTheme" parent="Theme.AppCompat.DayNight"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="Dialog.Alert" parent="Theme.AppCompat.DayNight.Dialog.Alert"/> 我的代码显示对话框: new AlertDialog.Builder(mContext, R.style.Dialog_Alert) .setTitle("Title") .setMessage("Message") .show();

android -RecyclerView在kitkat中

因为RecyclerView SRC在android.support.v7.widget.RecyclerView中,只要我从支持库(或谷歌播放服务)引用这个包,我可以使用套件kat和果冻豆中的recyclerView?

如何从源代码构buildv4支持库

我试图从源sice构buildv4支持库我修改了一部分库。 我试图在Ubuntu 13.10上用gradle来做这个。 我按照这个答案的指示,但现在我卡住了。 我使用Gradle 1.10与Ubuntu的,因为当我试图在Windows上build立它,它说,Windows不支持和Ubuntu的Gradle 2.4它说gradle 1.10是支持的版本。 当我尝试build设 gradle clean jar –stacktrace 我不断收到一个IllegalStateException:llvm-rs-cc丢失,这是我一直得到的堆栈跟踪的一部分 Caused by: java.lang.IllegalStateException: llvm-rs-cc is missing at com.android.builder.AndroidBuilder.compileAllRenderscriptFiles(AndroidBuilder.java:1281) at com.android.builder.AndroidBuilder$compileAllRenderscriptFiles.call(Unknown Source) at com.android.build.gradle.tasks.RenderscriptCompile.taskAction(RenderscriptCompile.groovy:99) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) 整个堆栈跟踪在这里 我尝试通过AndroidBuilder.java的源代码进行查看 ,并没有任何亮点。 我甚至试图从android-sdk-linux/build-tools中将所述llvm-rs-cc文件复制到尽可能多的文件夹中。 我已经将llvm-rs-cc二进制文件的path添加到了我的path中,就像BuildToolInfo.java中的注释一样,并且还build-tools, tools, and platform-tools的path,我相信我使用android sdk经理。 我确认path是在重新启动后使用printenv命令添加的。 我究竟做错了什么?

CoordinatorLayout中的第三方FloatingActionButton库

我正在尝试使用futuresimple的FloatingActionButton库在CoordinatorLayout使用FloatingActionMenu因此当我显示一个Snackbar ,FAB将向上移动,而不会被Snackbar隐藏。 FloatingActionMenu工作正常,虽然我注意到第三方库不在CoordinatorLayout内工作。 当我使用来自Google的支持库FAB时, CoordinatorLayout按照预期工作,虽然FutureSimple的库不是。 (它被Snackbar隐藏)。 我如何使第三方库与CoordinatorLayout工作? fragment_comic.xml <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:text="@string/default_title" android:textAppearance="?android:textAppearanceLarge" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/alt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/title" android:layout_centerHorizontal="true" android:layout_gravity="center_horizontal" android:fadeScrollbars="false" android:gravity="center" android:maxLines="4" android:textColor="@color/black" android:paddingBottom="13dp" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:scrollbars="vertical" android:text="@string/default_alt" android:textAppearance="?android:textAppearanceMedium" /> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/alt" android:adjustViewBounds="false" android:layout_marginBottom="10dp" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:scaleType="fitCenter" /> </RelativeLayout> <com.getbase.floatingactionbutton.FloatingActionsMenu android:id="@+id/famMain" android:layout_width="wrap_content" […]

自定义评分栏着色API <21与支持库22.1.1

我正在使用支持库22.1.1。 我的目标是为自定义评分栏着色,以避免在APK中包含多个图片。 着色正确地应用在API 22上,但不是在API 19上。我希望它在API> = 16上工作。请注意,我正在尝试着色“进度”,而不是完整的栏。 这是RatingBar风格: <style name="customRatingBar" parent="Widget.AppCompat.RatingBar"> <item name="android:progressDrawable">@drawable/custom_ratingbar</item> <item name="android:minHeight">24dp</item> <item name="android:maxHeight">24dp</item> <item name="android:progressTint">@color/md_red_700</item> <item name="android:secondaryProgressTint">@color/md_red_700</item> </style> 和custom_ratingbar.xml文件: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background" android:drawable="@drawable/ic_heart_outline_grey600_24dp" /> <item android:id="@android:id/progress" android:drawable="@drawable/ic_heart_grey600_24dp" /> </layer-list> 这是在我的布局,这是在一个扩展android.support.v4.Fragment活动扩展android.support.v7.app.AppCompatActivity本身的一个片段中应用的方式: <RatingBar android:layout_width="wrap_content" android:layout_height="22dp" android:id="@+id/checkin_rating" style="@style/customRatingBar" android:isIndicator="true" android:numStars="5" android:stepSize="1" android:layout_marginBottom="8dp"/> 我从lint工具中得到了一个警告,说android:progressTint < android:progressTint在API <21上是不支持的。有没有办法在不使用几个drawable的情况下实现这个function?

材料devise支持库

是否正在努力将新的Material Design样式和小部件移植到Android的前L版本,类似于“HoloEverywhere”-library? 该库的创build者已经初始化了一个空的GitHub库,但似乎没有积极的开发。 我知道有一个L型对话框和浮动动作button的回传,但显然还有很多Android L已经改变的小部件。 Android团队是否在支持库(超出当前可用的版本)上发表任何消息?

为什么会发生? 我该如何解决? Android:意外的顶级例外:

意外的顶级例外:com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]:65536错误:执行失败的任务':app:dexDebug'。 com.android.ide.common.internal.LoggedErrorException:无法运行命令:/ home / pre / develop / / home / prem / currencysave / Android / CurrencySave / app / build / intermediates / dex / debug –input-list = / home / prem / currencysave / Android / CurrencySave / app / build / intermediates / tmp / dex / debug / inputList .txt错误代码:2输出:UNEXPECTED […]

停止使用支持库的Android Studio

我试图让Android Studio中的Android项目不使用支持库。 我的问题是,当我使用片段,期待支持碎片,并导致应用程序崩溃。 我的最小SDK是14,我的目标SDK是19.我的理解是,因为我针对这些版本,我不应该需要支持库。 如我错了请纠正我。 我想纠正这个错误java.lang.ClassCastException: com.google.android.gms.maps.MapFragment cannot be cast to android.support.v4.app.Fragment 。 而且我知道我可以通过使用SupportMapFragment来修复它。 但我不想这样做。 我想使用常规的MapFragment 所以我的主要问题是如何让它停止期待支持库碎片,只是使用正则片段。 我也有这个问题与其他片段不只是地图。