【发布时间】:2014-09-01 20:52:16
【问题描述】:
我在 gridview 的每个项目中都有一个 ScrollView。 在这个滚动视图中有一系列视图。我希望能够确定视图当前是否可见。
我已经看过了:Android: how to check if a View inside of ScrollView is visible?
我在我的自定义适配器中尝试了这段代码,但它看起来不起作用,因为 bounds 的值总是 (0,0,0,0) ..
你有什么想法吗?
@Override
public View getView(int position, View convertView, final ViewGroup parent) {
final ViewHolder holder;
String reference_sequence = "DIRECT";
if(convertView == null) {
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
//On recupère le layout
convertView= mInflater.inflate(R.layout.listitemaboyeur, parent, false);
holder = new ViewHolder();
// On place les widgets de notre layout dans le holder
holder.Couverts = (TextView) convertView.findViewById(R.id.Couverts);
holder.Table = (TextView) convertView.findViewById(R.id.Table);
holder.Time = (TextView) convertView.findViewById(R.id.Time);
holder.Block=(LinearLayout) convertView.findViewById(R.id.BlocLayout);
holder.scrollview = (ScrollView) convertView.findViewById(R.id.scrollView);
//On insere le holder en tant que tag dans le layout
convertView.setTag(holder);
} else
holder = (ViewHolder)convertView.getTag();
//On recupere la commande en cours
final Commande order = getItem(position);
main_layout = new RelativeLayout(context);
main_layout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,getPixels(55)));
Rect bounds = new Rect();
main_layout.getDrawingRect(bounds);
Rect scrollBounds = new Rect();
holder.scrollview.getHitRect(scrollBounds);
if(Rect.intersects(scrollBounds, bounds))
{
Log.d("ok","visible");
//is visible
}
【问题讨论】:
标签: android scrollview