栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android 设置gridview条目监听

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 设置gridview条目监听

AlbumFragment

package com.meetdilse.store.ui.fragment;

import android.graphics.Rect;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.meetdilse.store.R;
import com.meetdilse.store.base.baseFragment;
import com.meetdilse.store.base.OkHttp;
import com.meetdilse.store.data.DiscoverAlbum;
import com.meetdilse.store.data.DiscoverMovie;
import com.meetdilse.store.photoview.TestImageLoader;
import com.meetdilse.store.photoview.UserViewInfo;
import com.meetdilse.store.ui.adapter.DiscoverAlbumAdpter;
import com.previewlibrary.GPreviewBuilder;
import com.previewlibrary.ZoomMediaLoader;
import com.scwang.smart.refresh.layout.api.RefreshLayout;

import java.util.ArrayList;
import java.util.List;

public class AlbumFragment extends baseFragment {

    private GridView mGridView;
    private int mPage;
    private DiscoverAlbumAdpter discoverAlbumAdpter;
    private int mPhotoId;
    private GridView mGrid;
    private List mThumbViewInfoList;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_album,container,false);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        ZoomMediaLoader.getInstance().init(new TestImageLoader());

        mGridView=view.findViewById(R.id.gv_album);
        mGrid=mGridView;
        discoverAlbumAdpter=new DiscoverAlbumAdpter(getActivity());
        mGrid.setAdapter(discoverAlbumAdpter);
        mThumbViewInfoList = new ArrayList();

        OkHttp.create(this).buyPhoto(mPhotoId).enqueue((call, httpRes) -> {
            Log.v("buyvideo", httpRes.toString());
        });

        OkHttp.create(this).getHotPhotoList(1).enqueue((call,httpRes)->{
            Log.v("getHotPhotoList",httpRes.toString());
            if (httpRes.isSuccessful()){
                List data=httpRes.dataFromList(DiscoverAlbum.class);
                discoverAlbumAdpter.addAll(data);

                for (DiscoverAlbum datum : data) {
                    mThumbViewInfoList.add(new UserViewInfo(datum.getUinfo().getAvatar()));
                    Log.v("datum.getUinfo()",datum.getUinfo().getAvatar());
                }
            }
        });

        RefreshLayout refreshLayout =view.findViewById(R.id.refreshLayout);//绑定那个刷新的布局
        refreshLayout.setOnRefreshListener(this::onRefresh);//设置下拉监听,当下拉的时候调用函数
        refreshLayout.setOnLoadMoreListener(this::onLoadMore);//设置上拉监听,当上拉时候调用函数

        //设置监听,点击item查看图片
        mGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView adapterView, View view, int i, long l) {
//                DiscoverAlbum item=discoverAlbumAdpter.getItem(i);
//                mPhotoId =item.getId();
//                Log.v("mVideoId", String.valueOf(mPhotoId));
                GPreviewBuilder.from(AlbumFragment.this)
                        .setData(mThumbViewInfoList)
                        .setCurrentIndex(i)
                        .setType(GPreviewBuilder.IndicatorType.Number)
                        .start();
            }
        });


    }

    private void onRefresh(@NonNull RefreshLayout refreshLayout) {
        mPage = 1;
        OkHttp.create().getHotPhotoList(mPage).enqueue((call, httpRes)->{
            if (httpRes.isSuccessful()){
                List data=httpRes.dataFromList(DiscoverAlbum.class);
                discoverAlbumAdpter.addAll(data);
                for (DiscoverAlbum datum : data) {
                    mThumbViewInfoList.add(new UserViewInfo(datum.getUinfo().getAvatar()));//下拉刷新或者上拉加载都要再次添加图片,用来浏览的
                }
            }
            refreshLayout.finishRefresh();
        });
    }

    private void onLoadMore(@NonNull RefreshLayout refreshlayout) {
        mPage++;
        OkHttp.create().getHotPhotoList(mPage).enqueue((call, httpRes)->{
            if (httpRes.isSuccessful()){
                List data=httpRes.dataFromList(DiscoverAlbum.class);
                if (data.size()==0) {
                    refreshlayout.finishLoadMoreWithNoMoreData();
                }else {
                    for (DiscoverAlbum datum : data) {
                        mThumbViewInfoList.add(new UserViewInfo(datum.getUinfo().getAvatar()));
                    }

                    discoverAlbumAdpter.addAll(data);
                }
                refreshlayout.finishLoadMore();

            }
        });
    }

    
    private void computeBoundsBackward(int firstCompletelyVisiblePos) {
        for (int i = firstCompletelyVisiblePos; i < mThumbViewInfoList.size(); i++) {
            View itemView = mGrid.getChildAt(i - firstCompletelyVisiblePos);
            Rect bounds = new Rect();
            if (itemView != null) {
//                //需要显示过度控件
//                ImageView thumbView = (ImageView) itemView.findViewById(R.id.iv_al);
//                //拿到在控件屏幕可见中控件显示为矩形Rect信息
//                thumbView.getGlobalVisibleRect(bounds);
            }
            mThumbViewInfoList.get(i).setBounds(bounds);
        }
    }
}

下面这个就是设置监听了

       //设置监听,点击item查看图片
        mGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView adapterView, View view, int i, long l) {
//                DiscoverAlbum item=discoverAlbumAdpter.getItem(i);
//                mPhotoId =item.getId();
//                Log.v("mVideoId", String.valueOf(mPhotoId));
                GPreviewBuilder.from(AlbumFragment.this)
                        .setData(mThumbViewInfoList)
                        .setCurrentIndex(i)
                        .setType(GPreviewBuilder.IndicatorType.Number)
                        .start();
            }
        });
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/731963.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号