美文网首页
每天一个知识点

每天一个知识点

作者: 小虫虫奇遇记 | 来源:发表于2021-01-18 15:05 被阅读0次
  1. Toast.LENGTH_SHORT和 Toast.LENGTH_LONG分别对应多长时间?
 static final long SHORT_DURATION_TIMEOUT = 4000;
 static final long LONG_DURATION_TIMEOUT = 7000;

多次调用toast.show会依次展示,展示本次view之前会把之前的view remove掉

2.反射可以获取泛型类型吗?
getGenericType()
https://www.zhihu.com/question/346911525/answer/830285753
https://cloud.tencent.com/developer/article/1447092

3.hashMap链表长度为什么超过8转化为红黑树?
https://blog.csdn.net/reliveIT/article/details/82960063
红黑树节点数小于6转换为链表
统计计算,柏松分布,时间,空间权衡。

4.rxjava如何实现线程切换?
Scheduler scheduleDirect, 新建线程池,worker队列
ioThread, computationthread, new Thread
UI MainThread:Handler切换

5.Fragment not attached to activity?
可能发生在Activity销毁重建时,fragment中需要context进行布局操作的时候(tvMsg.setText(getResources().getString(R.string.app_name)))。解决如下:

Activity activity = getActivity(); 
if (isAdded() && activity != null) {
...
}

Fragment保存状态:setRetainInstance(true);
但onAttach和onActivityCreated还会被重新调用,只是不调用onDestroy和onCreate. 设置了setRetainInstance方法,旋转屏幕时,EditText中输入的内容也会被清除呢?这是因为Fragment的onCreateView方法被重新执行了,重新创建了一个新的View,以前输入的内容就没有了。可以设置一个全局的View,方法如下:

View view = null;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if ( view == null ) {
        Log.e("TestFragment", "view == null");
        view = inflater.inflate(R.layout.fragment_second, container, false);
    }
    return view;
}

6.ContentProvider: onCreate调用时机:Application :attachBaseContext之后,Application: onCreate之前;所以在ContentProvider: onCreate中getContext 可返回application,也可以做一些初始化操作(三方sdk);

  1. double和float进行浮点计算会产生精度问题,使用 BigDecimal解决,BigDecimal传递参数要使用string,否则也有有问题。
var a = 0.4f
 // var b = a*100
(BigDecimal(floatNum.toString()).multiply(BigDecimal(100)))
  1. attrs和theme可实现不同包使用不同的主题;或者不同flavor的上层依赖同一个sdk,如果该sdk要展示同样的布局,只是颜色or背景不一致,可以在sdk中将差异化属性定义为attrs,然后在上层定义theme,在不同的flavor中为属性设置差异化值。
//attrs.xml 增加属性的定义
 <!-- 按钮背景色 -->
    <attr name="confirm_btn_color" format="reference|color" />

//drawable/positive_btn_bg.xml。使用属性
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="?attr/confirm_btn_color" />
    <corners android:radius="6dp" />
</shape>

//layout.xml 使用背景
<Button
      android:id="@+id/confirm_btn"
      android:background="@drawable/positive_btn_bg"
      .../>
//style.xml;上层项目,在不同flavor包中定义相同的style,为attr赋值
    <style name="DIYStyle" >
        <item name="confirm_btn_color">@color/color_common_main</item>
    </style>

//属性使用:设置使用Theme
  1. ViewStub使用
private var mLayout: ViewStub = view.findViewById<ViewStub>(R.id.layout)
 val view = mLayout.inflate()
//mLayout .findViewById(R.id.title) 会返回空,要用inflate结果findView才可以
 val title: TextView = view.findViewById(R.id.title)

相关文章

  • 完整的整合营销传播套路梳理

    每天学习一个营销知识点,每天梳理营销知识点,每天分享一个营销知识点。 今天梳理下整合营销传播的整体构建框架怎么做?...

  • 每天一个知识点

    图像识别与目标检测: 输入一张图片,输出与该图片对应的类别属于图像识别。如果输出的不单单是图像类别,还包括图像中所...

  • 每天一个知识点

    Toast.LENGTH_SHORT和 Toast.LENGTH_LONG分别对应多长时间? 多次调用toast....

  • 84.Kotlin object 和 companion obj

    object EightyFourActivity {/**** 每天一个知识点day84 TODO Kotlin...

  • 每天一个知识点(二)

    有时候,同样的代码源程序与交互式终端的执行结果不同。这是因为源程序是一次执行,系统只开辟一个内存空间,这让相同的数...

  • 每天一个知识点(四)

    介绍几个数据集 LFW(labeled faces in the wild)人脸数据库: 主要用来研究非受限情况下...

  • 每天一个知识点(五)

    今天介绍一个特殊的向量。 one hot(独热)向量: ti={0,0,0,...,1,...0} one ho...

  • 每天一个知识点(八)

    TensorFlow的数据读取机制:(读取图片为例) 如果将图片先读取到内存中后提供给GPU或CPU计算,...

  • 每天一个知识点(七)

    介绍几个常用的字符串处理。 一、列表元素删除: ①知道要钱处对象的位置。del函数 ②知道要删除的具体元素。rem...

  • 每天一个知识点(三)

    三种格式化输出: 1、加号拼接 print("a"+"b"+"C") 注意:加号拼接的两个对象类型必须一致。 2、...

网友评论

      本文标题:每天一个知识点

      本文链接:https://www.haomeiwen.com/subject/oslxzktx.html