Android开发日志

此日志是我在开发工作中遇到的一些问题,总结一番

(1)Java停止一个线程的方法应该使用线程池的shutdownNow方法

(2)在服务中弹toast推荐用此方法

 new Handler().post(new Runnable() {
                     @Override
                     public void run() {
                         Toast.makeText(context, "哈哈", Toast.LENGTH_LONG).show();
                     }
                 });

(3) Tablayout 设置文字和下划线宽度一样,设置属性 app:tabIndicatorFullWidth=“false”。TabLyaout动态切换到指定页面,似乎一定要这样用才行

tabLayout.postDelayed(new Runnable() {
            @Override
            public void run() {
                tabLayout.getTabAt(title.size()-1).select();
            }
        }, 100);

(4)报错 java.lang.IllegalArgumentException: No view found for id
0xad7b9d70 (unknown) for fragment
这个东西是我在View里面使用fragment引起的,后来我把View改为Activity就好了,所以使用fragment最好在activity里面

(5) recyclerview嵌套GridView的时候,recycleview会自动滚动到GridView位置。一般出现这种情况是焦点问题,
这时如果不想listView或girdView获取焦点的话,需要在根布局设置

android:descendantFocusability="blocksDescendants"

(6)kotlin直接使用id做变量注意事项:如果是fragment–》view.nearby_list(否则会出现空指针),internal 修饰类的方法,表示这个类方法只适合当前module使用,在kotlin中ArrayList是继承于MutableList

(7)WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。不过WeakHashMap的键是“弱键”。在 WeakHashMap 中,当某个键不再正常使用时,会被从WeakHashMap中被自动移除。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。某个键被终止时,它对应的键值对也就从映射中有效地移除了

(8)floatingActionButton记得设置clickable方能触发点击事件(其他控件也一样,要是触发不了点击事件设置clickable为true)

(9)activity和fragment使用eventbus传递数据时,fragment接收数据无法更新UI问题
解决方案:在eventbus接收方法中更新变量调用view的invalidate()方法

(10)edittext取消自动获取焦点的方法:在其父布局中加入

android:focusable="true"
android:focusableInTouchMode="true"

(11)Gridview显示所有条目,只需重写onMeasure方法即可

   @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }

你可能感兴趣的:(Android开发日志)