Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何找到水平列表视图(回收器视图)的中间索引_Android - Fatal编程技术网

Android 如何找到水平列表视图(回收器视图)的中间索引

Android 如何找到水平列表视图(回收器视图)的中间索引,android,Android,我有一个水平列表视图,我想在其中查找屏幕的每次中间索引,以便更改其大小。基本上,我想在每次滑动和停止时对Listview的中间索引执行类似鱼眼效果的操作。 请给我提个建议 @Override public void onBindViewHolder(ViewHolder holder, final int position) { try { holder.image.setImageDrawable(cntx.getPackageManager().getApp

我有一个水平列表视图,我想在其中查找屏幕的每次中间索引,以便更改其大小。基本上,我想在每次滑动和停止时对Listview的中间索引执行类似鱼眼效果的操作。 请给我提个建议

    @Override
public void onBindViewHolder(ViewHolder holder, final int position) {

    try {
        holder.image.setImageDrawable(cntx.getPackageManager().getApplicationIcon(apps.get(position).getAppname()));
        Log.e("TAG", "position: "+position );
           if(position%4==0) {
               holder.image.setMinimumHeight(250);
               holder.image.setMinimumWidth(250);
           }

        holder.image.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                PackageManager pm = cntx.getPackageManager();
                Intent launchIntent = pm.getLaunchIntentForPackage(apps.get(position).getAppname());
                cntx.startActivity(launchIntent);
            }
        });

    } catch (Exception e) {
        e.printStackTrace();
    }
}

您可以使用getItemCount()方法获取列表的中间索引

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {

int middleIndex=getItemCount()/2; 
}

这将为您提供中间索引值。您可以在此基础上编写条件。

列表视图具有
getFirstVisiblePosition()
getLastVisiblePosition()
方法。可以将这些值相加并除以2。结果将是中间元素的索引。

getItemCount()返回数组大小的总值,这不是我的要求,我需要获取可见listview项的中间值。例如,我们有20个listview项,但如果滚动listview,只有五个项的其余部分可见。所以我需要中间的可见项。我希望你明白我的意思