知识点总结(不定期更新)
1.总结一下接口回调
//接口回调
interface CallBack{
public void solve(String ques);
}
Class A implement CallBack{
private B b;
public A (B b){
this.b = b;
}
public void askQues(String ques){
new Thread(new Runnable(){
b.execute(A.this,ques);
}).start;
}
//解决了问题参数肯定是anser啊!!!!!!!!!!!!!!!
@override
public void solve (String ques){
SYSO("解决了问题");
}
}
Class B{
public void execute(CallBack callback ,String ques){
SYSO("anser");
//告诉A啊
callback.solve(anser);
}
}
Class Test{
A a = new A(b);
B b = new B();
a.askQues(wenti);
}
2.//设置底部横线的宽度
int lineWidth = tabColorizer.getUnderlineWidth(mSelectedPosition);
if (lineWidth > 0) {
int linePadding = (right - left - lineWidth) / 2;
if (linePadding > 0) {
left += linePadding;
right -= linePadding;
}
}
android:hardwareAccelerated=”false”
解决webview显示速度慢的方法
http://www.cnblogs.com/xinye/p/3144139.html
3.代码优化部分
1).减少代码的重复计算
//代码重复计算
for (int i = 0;i <list.size(); i++){
}
//优化之后的代码
int length = list.size();
for (int i = 0 ; i < length;i++){
}
4.Log的使用,关于真机和模拟器log会出现很大差别…具体解决方式百度
5.今天要说一个非常重要的知识点 关于Fragment的创建显示一点点解析
关于setUserVisibleHint 和 onHiddenChanged 的区别
1).setUserVisibleHint 结合ViewPager使用 onHiddenChanged 结合Fragment 的hide 和 add show 使用
不在ViewPager中使用setUserVisible是不会走的
2)关于构造参数,boolean isVisibleToUser 与boolean hidden 的用法是一样的
3)关于预加载
通过 FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
来创建Fragment 是不会有预加载的问题
ViewPager的预加载问题是一定会出现的
http://blog.csdn.net/qq_21898059/article/details/51453938
采用了 重写低版本ViewPager里面的方法,但是我没有使用过.
我个人倒是觉得通过
void setUserVisibleHint(boolean isVisibleToUser)、boolean getUserVisibleHint()解决预加载是一个不错的方式
而且将这个方法使用在BaseFragment里面效果更佳 当然 如果页面中含有很多不同的Fragment,我们可以新创建一个Fragment来继承之前的BaseFragment
public abstract class BaseViewPagaerFragment extends BaseFragment {
public View view;
private View recy;
public boolean isVisible;
@Override
public View setContentView() {
view = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_base_list, null);
LogUtils.d("TAG",System.currentTimeMillis() + "-------setContentView");
return view;
}
@Override
public void initView() {
recy = view.findViewById(R.id.base_recy);
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (getUserVisibleHint()) {
isVisible = true;
onVisible();
} else {
isVisible = false;
onInVisible();
}
}
/**
* fragment不可见
*/
private void onInVisible() {
}
/**
* fragment可见
*/
private void onVisible() {
LogUtils.d("TAG",System.currentTimeMillis() + "-----onVisible");
onLoadData();
}
/**
* 加载网络数据 初始化数据的使用
*/
protected abstract void onLoadData();
}
让子类去重写onLoadData()方法,进行网络数据的请求.
6.关于H5页面的加载优化
最近项目用到了很多的H5页面,我一般都是用WebView控件进行加载,但是也会有一些动画效果需要展示 所以想要优化一下动画效果 以及 关于webview的内存泄漏问题
上一篇: js常用基础知识点(记录且不定时更新)