public class Fragment03 extends Fragment {
private PullToRefreshGridView pgv ;
private int pager =10 ;
private int pagertype =1 ;
private MyAdapter1 myAdapter ;
private List<ReaData1.NewslistBean> datas ;
private String path ="http://api.tianapi.com/social/?key=b6605dd3366f74ff0b56c518bcf9791e&num=" +pager ;
@Nullable
@Override
public View onCreateView (LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate( R.layout.f3 , container,false );
pgv = view.findViewById( R.id.gv );
datas =new ArrayList<>( );
initplv();
initData();
return view;
}
private void initplv () {
pgv .setMode( PullToRefreshBase.Mode.BOTH );
pgv .setOnRefreshListener( new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override
public void onPullDownToRefresh (PullToRefreshBase<GridView> pullToRefreshBase) {
pagertype =1 ;
pager =1 ;
path ="http://api.tianapi.com/social/?key=b6605dd3366f74ff0b56c518bcf9791e&num=" +pager ;
initData();
}
@Override
public void onPullUpToRefresh (PullToRefreshBase<GridView> pullToRefreshBase) {
pagertype =2 ;
pager +=20 ;
path ="http://api.tianapi.com/social/?key=b6605dd3366f74ff0b56c518bcf9791e&num=" +pager ;
initData();
}
} );
}
private void initData () {
MyTask task = new MyTask(new MyTask.ICallBacks() {
@Override
public void getJsonData (String jsonstr) {
Gson gson = new Gson();
ReaData1 reaData1 = gson.fromJson( jsonstr, ReaData1.class );
List<ReaData1.NewslistBean> newslist = reaData1.getNewslist();
if (pagertype ==1 ){
datas .clear();
}
datas .addAll( newslist);
setAdapter();
pgv .onRefreshComplete();
}
} );
task.execute( path );
}
private void setAdapter () {
if (myAdapter ==null ){
myAdapter = new MyAdapter1( datas , getActivity() );
pgv .setAdapter( myAdapter );
}
myAdapter .notifyDataSetChanged();
}
}
public class MyAdapter1 extends BaseAdapter {
List<ReaData1.NewslistBean> list ;
Context context ;
private final DisplayImageOptions options ;
public MyAdapter1 (List<ReaData1.NewslistBean> list, Context context) {
this .list = list;
this .context = context;
options = new DisplayImageOptions.Builder().cacheInMemory( true )//使用内存缓存
.cacheOnDisk( true )//使用磁盘缓存
.bitmapConfig( Bitmap.Config.RGB_565 )//设置图片色彩模式
.imageScaleType( ImageScaleType.EXACTLY )//设置图片的缩放模式
// .displayer(new RoundedBitmapDisplayer(50))//设置圆角
.build();
}
@Override
public int getCount () {
return list .size();
}
@Override
public Object getItem (int position) {
return list .get( position );
}
@Override
public long getItemId (int position) {
return position;
}
@Override
public View getView (int position, View convertView, ViewGroup parent) {
MyHolder holder;
if (convertView==null ){
convertView=View.inflate ( context , R.layout.itemimg ,null );
holder= new MyHolder();
holder.imageView =convertView.findViewById( R.id.img );
convertView.setTag( holder );
}else {
holder= (MyHolder) convertView.getTag();
}
ImageLoader.getInstance ().displayImage( list .get( position ).getPicUrl(), holder.imageView , options );
return convertView;
}
class MyHolder{
ImageView imageView ;
}
}
<android.support.constraint.ConstraintLayout
xmlns: android = "http://schemas.android.com/apk/res/android" android :layout_width= "match_parent"
android :background= "#f00"
android :layout_height= "match_parent" >
<com.handmark.pulltorefresh.library.PullToRefreshGridView
android :layout_width= "match_parent"
android :layout_height= "match_parent"
android :id= "@+id/gv"
android :numColumns= "2"
></com.handmark.pulltorefresh.library.PullToRefreshGridView>
</android.support.constraint.ConstraintLayout>
<RelativeLayout
xmlns: android = "http://schemas.android.com/apk/res/android" android :layout_width= "match_parent"
android :layout_height= "match_parent" >
<ImageView
android :layout_width= "150dp"
android :layout_height= "100dp"
android :layout_marginLeft= "30dp"
android :layout_marginTop= "15dp"
android :id= "@+id/img" />
</RelativeLayout>