2016-9-22
1.SwipeRefreshLayout調用
//設置下拉出現小圓圈是否是縮放出現,出現的位置,最大的下拉位置
mySwipeRefreshLayout.setProgressViewOffset(true, 50, 200)
//設置下拉圓圈的大小,兩個值 LARGE, DEFAULT
mySwipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE)
// 設置下拉圓圈上的顏色
mySwipeRefreshLayout.setColorSchemeResources(
android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light)
// 通過 setEnabled(false) 禁用下拉刷新
mySwipeRefreshLayout.setEnabled(false)
// 設定下拉圓圈的背景
mSwipeLayout.setProgressBackgroundColor(R.color.red)
mySwipeRefreshLayout.setOnRefreshListener(
new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {//刷新動畫完成後回調此方法
}
}
)
setRefreshing(false) 手動設置刷新動畫完成
setRefreshing(true) 手動設置刷新動畫開始。
2.Android Butterknife Zelezny爲ButterKnife生成代碼的studio插件
3.listview tips
mListView.getChildAt(int position) position表示的是在當前屏幕顯示區域中當前item的索引
mListView.getChildCount()則表示當前屏幕顯示區域中,總共有多少個item
AbsListView.OnScrollListener mOnScrollListener = new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
View firstChild = view.getChildAt(0);
if (firstChild == null) return;
int top = firstChild.getTop();
/**
* firstVisibleItem > mFirstPosition表示向下滑動一整個Item
* mFirstTop > top表示在當前這個item中滑動
*/
isScrollDown = firstVisibleItem > mFirstPosition || mFirstTop > top;
mFirstTop = top;
mFirstPosition = firstVisibleItem;
}
};
4.Gson無法解析null
Gson gson = GsonBuilder().registerTypeAdapterFactory(new NullStringToEmptyAdapterFactory()).create();
public static class NullStringToEmptyAdapterFactory<T> implements TypeAdapterFactory {
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
Class<T> rawType = (Class<T>) type.getRawType();
if (rawType != String.class) {
return null;
}
return (TypeAdapter<T>) new StringAdapter();
}
}
public static class StringAdapter extends TypeAdapter<String> {
public String read(JsonReader reader) throws IOException {
if (reader.peek() == JsonToken.NULL) {
reader.nextNull();
return "";
}
return reader.nextString();
}
public void write(JsonWriter writer, String value) throws IOException {
if (value == null) {
writer.nullValue();
return;
}
writer.value(value);
}
}