R Field - 2022年6月
type: channel
link: http://www.ramlife.org/2022/06/
description: 通玄小论
items: fragment stack 保存数据
items: [转] Android studio中使用Recyclerview与Activity跳转
items: [转] 这些年，我爬过的 Android 坑 | 持续更新
items: android git app

fragment stack 保存数据
type: item
date: 2022-06-04T11:28:00+08:00
description: 背景 需要在 fragment 进行 replace 然后 pop 回来之后，一些选择项还是原来的选项。 方法 查阅了很多资料，发现如果是 view 类型那么可以被自动保存，非 view 的就需要我们自己来保存了。 按照 fragment 的生命周期来说，需要在 onDestroyView 中进行保存，在 onCreateView 中进行读取。 如果是比较简单的，那么直接使用本身生成的 fragement 类型中的 setArguments 和 getArguments 来得到 bundle 来操作即可。 如果是比较复杂的，最好自己来实现一个保存和读取的，方便控制。然后在 onDestroyView, onCreateView 里面进行调用即可。 public Bundle setSaveBundle(Bundle bundle) { if (bundle == null) { bundle = new Bundle(); } bundle.putInt("type_index", analysisTypeLastSelected); DLog.d(TAG, "setSaveBundle: " + "type_index: " + analysisTypeLastSelected); return bundle; } public void getSaveBundle(Bundle bundle) { if (bundle == null) { DLog.d(TAG, "getSaveBundle: " + "null!"); return; } analysisTypeLastSelected = bundle.getInt("type_index"); DLog.d(TAG, "getSaveBundle: " + "type_index: " + analysisTypeLastSelected); } 参考: [译] 保存/恢复 Activity 和 Fragment 状态的最佳实践 https://segmentfault.com/a/1190000006691830 切换Fragment时实现数据保持 https://www.cnblogs.com/zhujiabin/p/4192613.html Pro Android学习笔记（四一）：Fragment（6）：数据保留 https://blog.csdn.net/flowingflying/article/details/12749403 Android Fragment 生命周期onCreatView、onViewCreated https://blog.csdn.net/asdf717/article/details/51383750 Android中Fragment数据保存和恢复 https://www.jianshu.com/p/015c79bedb41 onSaveInstanceState()和onRestoreInstanceState()使用详解 https://www.jianshu.com/p/27181e2e32d2 Android 使用onSaveInstanceState保存数据 https://blog.csdn.net/qq_34694875/article/details/109530012 android onSaveInstanceState方法 https://www.jianshu.com/p/5dde143a143f Android Fragment 在返回栈popBackStack() ，返回时onResume问题 https://blog.csdn.net/qq_34983989/article/details/78126362 Android Fragment回退栈管理(popBackStack) https://blog.csdn.net/qq_35988274/article/details/100518346

[转] Android studio中使用Recyclerview与Activity跳转
type: item
date: 2022-06-03T15:24:00+08:00
description: 转自: https://blog.csdn.net/nonamepao/article/details/120943245 项目介绍 本次项目在上一次类微信界面的设计上，增加了用recyclerview实现的模拟微信聊天联系人列表，其中从列表跳转到联系内容的部分使用了activity的跳转。 设计 列表界面 用一个xml来设计列表的界面，这里采用了最简单的单个textview作为标题模式。 <?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="8dp" android:gravity="center" android:text="TextView" /> 联系内容界面 显示联系内容的界面新建两个activity来实现，在activity2.xml文件作为被跳转的布局文件用来显示联系内容。 activity_1.xml <?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/textView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="这是第一个activity" android:textSize="40sp" /> activity_2.xml <?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/textView5" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="联系内容" android:textSize="40dp" /> 列表的展示 修改之前的weixin.java文件，调用布局文件来实现列表的展示 package com.example.wechatlike; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; public class weixin extends Fragment { private RecyclerView recyclerView; private MyAdapter myadapter; private List<String> list = new ArrayList<>(); private Context context; public weixin() { } private void initData(){ for(int i=0;i<10;i++) { list.add("联系人" + i ); } } private void initView3(){ context=this.getActivity(); myadapter=new MyAdapter(list,context); LinearLayoutManager manager3=new LinearLayoutManager(context); manager3.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setAdapter(myadapter); recyclerView.setLayoutManager(manager3); } @Override p…

[转] 这些年，我爬过的 Android 坑 | 持续更新
type: item
date: 2022-06-03T12:24:00+08:00
description: 转自: https://blog.csdn.net/weixin_46093316/article/details/106138435 总结目录 视图篇 如何理解非主线程可以更新UI dialogFragment 全屏时左右留空的解决方案 dialogFragment 全屏时状态栏出现黑色布局的解决方案 多个fragment 切换重叠的解决方案 多个fragment 保存状态时可能出现 TransactionTooLargeException 的解决方案 recyclerview 调用 notifyItemRemoved 方法移除某个 Item 之后因为引用 position 引起 crash 的原因 recyclerview 局部刷新Item时会因为默认动画导致闪烁的解决方案 recyclerview 中的 item 出现莫名的偏移滚动 recyclerview 内容超过一屏时，findFistCompletelyVisibleItemPosition 会返回 -1 的原因 textview 中富文本点击事件拦截了长按事件的解决方案 如何禁止 ViewPager 的滑动 如何仿蘑菇街/马蜂窝 Viewpager 装载图片之后切换时动态变更高度 如何控制 appbarLayout 随时定位到某个位置 如何禁止 appbarLayout 滚动 edittext 未能响应 onClickListener 事件的解决方案 使用 listview 或gridview 的处理 item 的 state_selected 事件是无效的解决方案 解决5.0以上Button自带阴影效果的方案 针对 onSingleTapUp 和 onSIngleTapConfirmed 的使用区别 如何使用layer-list画三角形 关于属性动画中旋转 View 时部分机型出现 View 闪烁的解决方案 关于 ConstraintLayout 的代码布局下的注意事项 TextView 在 6.0 版本下设置单行尾部缩略的坑 服务篇 后台手动清理应用之后，service中启动的notifications并没有消失的解决方案 全局的Context使用更为优雅的获取方案 线程篇 建议新起线程不要随便调用网络请求，一般的newThread没有looper队列，参考handlerThread 网络篇 Retorfit get 请求参数出现错误的解决方案 数据篇 如何优雅处理 sqlite 多线程读写问题 如何理解 Intent 传递数据出现 TransactionTooLargeException 的问题 机型系统适配篇 如何解决 NatigationBar 被 PopupWindow 遮挡的问题 如何解决MIUI系统后台无法 toast 的问题 如何解决关闭通知栏权限无法弹出 toast 的问题 如何适配 vivo 等双面屏幕 如何解决华为设备产生太多 broadcast 导致crash的问题 各种通知栏的适配方案 解决针对魅族推送内容限制的问题 解决从系统安装起安装应用后启动，Home 隐藏后 Launcher 重复启动的问题 针对有launcher做为Activity的应用，在完全没有启动下收到第三方推送（小米，华为，魅族）/分享拉起的注意事项 针对 App 多场景拉起场景下的场景判断分析 8.0 部分 ROM 出现 Only fullscreen opaque activities can request orientation 的解决方案 9.0 android 支持明文连接（Http) 编译构建篇 travis-ci 高版本androidO编译遇到 license 没通过编译失败的解决方案 Dalvik 支持的 android 版本下进行分包执行会有一些限制 Dalvik 分包构建每一个 dex 文件时可能出现 java.lang.NoClassDefFoundError Java 8 methods of java.lang.Long and java.lang.Character are not desugared by D8 databinding 中 findBinding vs getBinding 的场景区别 版本构建出现 Gradle sync failed: Cannot choose between the following configurations of project gradle 配置本地离线包 解决kvm/jvm 编译时 -classpath 遇到的分割及空格的问题 databinding NoSuchMethodError with buildTool 3.4.0 AS连接真机调试出现 debug info can be…

android git app
type: item
date: 2022-06-02T21:50:00+08:00
description: 背景 最近在手机上面安装 orgzly 来查看 org 版本的文档，考虑同步问题，所以需要找一个 android 版本的 git 软件。 解决 找到一个比较适合的，就是 mgit，这个里面可以生成手机端的 ssh key，把这个公钥放到 服务器端，就可以进行版本同步了。 参考 用 Git 在 Android 和 Windows 间同步 Obsidian 数据库 https://sspai.com/post/68989#!