(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);
}